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
| int batchInsert(List<XXX> list);
|
Mapper:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <insert id="batchInsert" keyColumn="id" useGeneratedKeys="true" keyProperty="id" parameterType="xxx"> insert into `xxx` ( xxx, xxx ) values <foreach collection="list" item="item" separator=","> ( #{xx}, #{xx} ) </foreach> </insert>
|
参考
- MyBatis魔法堂:Insert操作详解(返回主键、批量插入) - ^_^肥仔John - 博客园
- Mybatis Auto Generate Key | buptubuntu的博客
- MyBatis Generator Core – The Element
- MyBatis Dynamic SQL – Insert Statements