mybatis中updateBatch()使用方法
时间: 2024-03-15 07:46:47 浏览: 126
MyBatis 中的 `updateBatch()` 方法可以批量更新数据。
使用方法如下:
1. 定义一个 `List` 对象,用于存储待更新的数据,例如:
```java
List<User> userList = new ArrayList<>();
```
2. 填充 `userList` 数据,例如:
```java
for (int i = 0; i < 10; i++) {
User user = new User();
user.setId(i + 1L);
user.setName("user" + i);
user.setAge(20 + i);
userList.add(user);
}
```
3. 调用 `SqlSession` 的 `updateBatch()` 方法执行批量更新操作,例如:
```java
try (SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH)) {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.updateBatch(userList);
sqlSession.commit();
}
```
需要注意以下几点:
- `SqlSession` 的 `openSession()` 方法中需要传入 `ExecutorType.BATCH` 参数,表示使用批量执行器;
- `UserMapper` 接口中需要定义 `updateBatch()` 方法,并且方法参数为 `List` 类型;
- 在执行完批量操作后,需要手动调用 `SqlSession` 的 `commit()` 方法提交事务。
另外,如果需要批量更新大量数据,可以考虑分批次执行批量更新,以避免一次性更新数据量过大导致性能问题。
阅读全文