日期:2014-05-16  浏览次数:20467 次

MyBatis插入数据库后,获得库自增主键ID
ApplicationMapper.xml:
<insert id="save" parameterType="cn.nec.po.ApplicationPO" useGeneratedKeys="true"
        keyProperty="id" >
    INSERT INTO T_Application (dining_type_id, applicant_id, apply_date,
        apply_remarks, approver_id, state_flag, create_date, del_flag
    ) VALUES (#{diningTypeId}, #{applicantId}, #{applyDate}, #{applyRemarks},
        #{approverId}, 0, getDate(), 0)
</insert>

环境:struts2-core-2.2.1.jar + org.springframework.core-3.0.5.RELEASE.jar + mybatis-3.0.6.jar;

1、连接SQL Server 2005时:
   驱动包为sqljdbc4.jar时,插入后的对象中,自动返回了自增主键"id"的值。完全正常。

2、连接SQL Server 2000时:
   驱动包为sqljdbc4.jar时,Mapper.xml直接报“不支持”语法错误。无论怎么配置sql参数,都无法取到自增的主键ID。
    经调查发现:MyBatis与SQL Server 2000驱动包sqljdbc4.jar存在兼容问题,故有些功能不予支持。

3、修改方法:将驱动包替换为第三方驱动 jtds-1.2.5.jar 即可。(驱动官网:http://jtds.sourceforge.net/)

### 数据库配置 ###
jdbc.driverClassName=net.sourceforge.jtds.jdbc.Driver
jdbc.url=jdbc:jtds:sqlserver://172.28.76.18:1433;DatabaseName=otma
jdbc.username=********
jdbc.password=********