mybatis批量插入返回id
时间: 2023-10-15 12:06:43 浏览: 85
在MyBatis中进行批量插入并返回ID,可以通过以下步骤实现:
1. 在Mapper文件中定义批量插入的SQL语句,使用`foreach`标签循环插入每个对象,同时设置`useGeneratedKeys="true"`和`keyProperty="id"`属性来指定返回自动生成的ID。
2. 在DAO层编写对应的方法,调用Mapper中定义的批量插入SQL语句。
3. 在实现层中调用DAO层方法,将插入后的对象列表转化为ID列表并返回。
示例代码如下:
在Mapper文件中:
```
<insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
INSERT INTO table_name (column1, column2, ...) VALUES
<foreach collection="list" item="item" separator=",">
(#{item.property1}, #{item.property2}, ...)
</foreach>
</insert>
```
在DAO层:
```
void batchInsert(List<T> list);
```
在实现层:
```
@Override
public List<Long> batchInsert(List<T> list) {
dao.batchInsert(list);
List<Long> ids = list.stream().map(T::getId).collect(Collectors.toList());
return ids;
}
```