mybatis的批量更新
时间: 2023-11-21 13:55:31 浏览: 112
在MyBatis中,可以使用foreach标签来实现批量更新。具体步骤如下:
1. 在Mapper.xml文件中,编写update语句,并使用foreach标签包裹需要更新的数据。
例如,假设我们需要更新一个user表,将多个用户的年龄同时加1,可以这样写:
```xml
<update id="batchUpdateUserAge">
UPDATE user SET age = age + 1
WHERE id IN
<foreach collection="userList" item="user" open="(" close=")" separator=",">
#{user.id}
</foreach>
</update>
```
其中,userList是一个包含多个User对象的List。
2. 在Java代码中,调用SqlSession的update方法执行批量更新。
例如,假设我们已经获取了一个包含多个User对象的List,可以这样写:
```java
List<User> userList = ... // 获取需要更新的用户列表
try (SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH)) {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
for (User user : userList) {
userMapper.updateUser(user);
}
sqlSession.commit();
}
```
其中,sqlSessionFactory是MyBatis的SqlSessionFactory对象,UserMapper是一个Mapper接口,updateUser是Mapper接口中定义的更新方法。
阅读全文