MyBatis实现批量修改
时间: 2024-01-15 12:04:13 浏览: 27
MyBatis提供了批量操作的支持,可以通过Mapper接口定义批量操作的方法,然后在Mapper.xml中实现对应的SQL语句。
以下是一个批量更新的示例代码:
Mapper接口定义:
```java
public interface UserMapper {
void batchUpdate(List<User> userList);
}
```
Mapper.xml实现:
```xml
<update id="batchUpdate" parameterType="java.util.List">
<foreach collection="list" item="user" separator=";">
update user set name=#{user.name}, age=#{user.age} where id=#{user.id}
</foreach>
</update>
```
在Java代码中调用该方法:
```java
List<User> userList = new ArrayList<>();
User user1 = new User();
user1.setId(1L);
user1.setName("张三");
user1.setAge(20);
userList.add(user1);
User user2 = new User();
user2.setId(2L);
user2.setName("李四");
user2.setAge(30);
userList.add(user2);
userMapper.batchUpdate(userList);
```
其中,Mapper.xml中的`<foreach>`标签会将List中的每个元素都解析成一个SQL语句,最终形成一个批量更新的SQL语句,执行效率很高。