mybatis批量更新带回主键
时间: 2024-01-24 20:15:40 浏览: 112
Mybatis批量插入数据返回主键的实现
在MyBatis中,可以通过设置useGeneratedKeys和keyProperty属性来实现批量插入后返回主键id的功能。
1. 对于支持生成自增主键的数据库,可以使用useGeneratedKeys和keyProperty属性。在Mapper.xml文件中,设置useGeneratedKeys为true,并指定keyProperty为主键字段名。例如:
```xml
<insert id="batchInsert" parameterType="java.util.List">
<selectKey keyProperty="id" resultType="java.lang.Long" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
INSERT INTO table_name (column1, column2, ...) VALUES
<foreach collection="list" item="item" separator=",">
(#{item.column1}, #{item.column2}, ...)
</foreach>
</insert>
```
2. 如果不支持自动生成主键,可以使用selectKey标签来获取主键值。在Mapper.xml文件中,设置parameterType为java.util.List,并设置useGeneratedKeys为true,keyProperty为主键字段名。例如:
```xml
<insert id="batchInsert" parameterType="java.util.List">
<selectKey keyProperty="id" resultType="java.lang.Long" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
INSERT INTO table_name (column1, column2, ...) VALUES
<foreach collection="list" item="item" separator=",">
(#{item.column1}, #{item.column2}, ...)
</foreach>
</insert>
```
这样,在执行批量插入操作后,会返回每个插入记录的主键id。
阅读全文