天天看点

关于使用Mybaits中useGeneratedKeys获取主键问题

如果你的数据库支持主键自增,例如MySQL和SQL Server,那么你可以简单的设置 useGeneratedKeys="true" ,用keyProperty 去指定主键名称,

<insert id="insertAttendanceHoliday" useGeneratedKeys="true" keyProperty="HolidayInnerId"  parameterType="Attendance_Holiday">    

    insert into Attendance_Holiday (<include refid="holidaySqlNoId"></include>) values (#{HolidayName},#{HStartDate},#{HEndDate},#{Remark},#{ISFills},0)

</insert> 

-useGeneratedKeys 

取值范围true|false

默认值是:false。

含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。MySQL和SQLServer执行auto-generated key field,因此当数据库设置好自增长主键后,可通过JDBC的getGeneratedKeys方法获取。

通过getGeneratedKeys方法获取,也就是不根据返回的int值做返回,而是返回的是插入的实体类的id信息

直接根据getHolidayInnerId 方法获取具体的自增id。

各位坑友请自觉爬坑