<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=********