Mybatis一次数据库连接执行多条数据批量修改
时间: 2024-09-12 18:13:51 浏览: 42
Mybatis的批量更新功能允许你在一次数据库连接中执行多条数据的修改操作,提高了性能和效率。通过`<update>`标签配合`#{}`占位符以及`batchSize`属性,可以批量提交SQL语句。具体步骤如下:
1. **创建Mapper XML文件**:在Mybatis的映射文件中,编写一个针对批量更新的 `<update>` 元素,指定表名和更新条件。
```xml
<update id="batchUpdate" parameterType="java.util.List">
UPDATE table_name
SET column1 = #{column1}, column2 = #{column2}
WHERE some_condition IN
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
#{item.some_condition}
</foreach>
</update>
```
2. **准备数据集合**:在Java代码中,创建一个包含待更新数据的List,每个元素对应一条记录的数据。
```java
List<Map<String, Object>> dataList = new ArrayList<>();
Map<String, Object> data1 = ...;
Map<String, Object> data2 = ...;
// 添加其他数据到list
SqlSession session = sqlSession.openSession();
```
3. **执行批量更新**:使用`SqlSession`的`batch()`方法开启批量处理,并执行更新操作。
```java
session.batch().update(batchUpdate, dataList);
session.commit(); // 提交事务完成批量更新
session.close(); // 关闭会话
```
阅读全文