mybatis批量更新
时间: 2023-09-28 14:07:32 浏览: 39
MyBatis支持批量更新操作,可以使用`<foreach>`标签来实现。
假设有一个`User`实体类,其中有`id`和`name`两个属性,现在需要批量更新多个用户的`name`属性,可以按照以下步骤实现:
1. 在`UserMapper.xml`文件中编写SQL语句:
```xml
<update id="batchUpdateUser">
<foreach collection="users" item="user" separator=";">
update user set name=#{user.name} where id=#{user.id}
</foreach>
</update>
```
2. 在`UserMapper`接口中声明方法:
```java
void batchUpdateUser(List<User> users);
```
3. 在代码中调用该方法,传入要更新的`User`列表:
```java
List<User> users = new ArrayList<>();
User user1 = new User();
user1.setId(1L);
user1.setName("name1");
users.add(user1);
User user2 = new User();
user2.setId(2L);
user2.setName("name2");
users.add(user2);
userMapper.batchUpdateUser(users);
```
其中,`<foreach>`标签中的`collection`属性指定要遍历的集合,`item`属性指定遍历时每个元素的别名,`separator`属性指定每个元素之间的分隔符。在SQL语句中,可以通过`${}`或`#{}`的方式引用遍历时每个元素的属性值,其中`${}`表示直接替换为属性值,`#{}`表示使用预编译的方式处理,防止SQL注入。