mybatis怎么循环插入数据
时间: 2024-12-17 16:31:41 浏览: 3
MyBatis中处理大规模数据批量插入通常通过动态SQL语句或者Map集合的方式来进行循环插入。这里有一个简单的示例:
1. **使用foreach标签**:
在Mapper XML文件中,你可以使用`<foreach>`标签配合`item`和`collection`属性,将List或数组中的每个元素作为一条记录插入数据库。
```xml
<insert id="insertData" parameterType="java.util.List">
INSERT INTO your_table (column1, column2, ...)
VALUES
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
#{item.column1}, #{item.column2},
</foreach>
</insert>
```
然后在服务层,传递一个List到Mapper的对应方法:
```java
List<Data> dataList = ...; // 你需要插入的数据列表
sqlSession.insert("insertData", dataList);
```
2. **使用Batch模式**:
MyBatis还支持批量提交(Batching),在Java代码中可以一次性提交多条插入操作,提高性能。
```java
Executor executor = sqlSession.getExecutor();
executor.batch(batchSize); // 设置批处理大小
for (Data data : dataList) {
executor.insert("insertData", data);
}
executor.commit(); // 批量提交
```
阅读全文