mybatis获取自增主键

使用useGeneratedKeys

1
2
3
<insert id="add" parameterType="Staff" useGeneratedKeys="true" keyProperty="id">
insert into Staff(name, age) values(#{name}, #{age})
</insert>

useGeneratedKeys既可以用于单条插入语句中获取自增主键,也可以用于多条语句中获取自增主键。

使用@@IDENTITY

1
2
3
4
5
6
<insert id="add" parameterType="Staff" keyProperty="id">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
select @@IDENTITY
</selectKey>
insert into Staff(name, age) values(#{name}, #{age})
</insert>

只支持一条插入时获取自增主键,而且跟数据库的支持有关.

参考

  1. MyBatis魔法堂:Insert操作详解(返回主键、批量插入) - ^_^肥仔John - 博客园
  2. Mybatis Auto Generate Key | buptubuntu的博客
  3. MyBatis Generator Core – The Element