用主键回填的方式来获取自增后的 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 语句一起执行。