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