用主键回填的方式来获取自增后的id主键值。数据库自动生成的主键值在插入数据后我们是不能直接得到的,需要用主键回填的功能来获取。在映射文件中SQL语句的插入位置,用<selectkey>标签。再使用SELECT LAST_INSERT_ID();
如下:
<!-- 主键回填-->
<!--keyProperty:主键属性 keyColumn:主键列名 resultType:主键返回值类型 order:执行时机(AFTER:插入完成后再获取主键)-->
<insert id="add2" parameterType="com.itbaizhan.pojo.User">
<selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">
SELECT LAST_INSERT_ID();
</selectKey>
insert into user(username,sex,address) values (#{username},#{sex},#{address})
</insert>
SELECT LAST_INSERT_ID():
查询刚刚插入的记录的主键值,只适用于自增主键,且必须和insert语句一起执行。