mybatisplus 批量更新例子
时间: 2023-09-03 07:10:43 浏览: 96
下面是 MyBatis-Plus 批量更新的一个例子:
首先,我们需要准备一个需要更新的数据集合,假设我们要更新用户表中的用户名和年龄:
```java
List<User> userList = new ArrayList<>();
userList.add(new User(1L, "Tom", 20));
userList.add(new User(2L, "Jerry", 22));
userList.add(new User(3L, "Lucy", 18));
```
其中,User 是一个实体类,包含用户表的字段信息:
```java
public class User {
private Long id;
private String name;
private Integer age;
// getter 和 setter 略
}
```
接下来,我们可以使用 MyBatis-Plus 提供的 UpdateWrapper 类来构建更新条件,然后调用 baseMapper 的 batchUpdate 方法进行批量更新:
```java
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.in("id", userList.stream().map(User::getId).collect(Collectors.toList()));
updateWrapper.set("name", "default_name");
updateWrapper.set("age", 0);
int rows = userService.update(updateWrapper, userList);
```
上述例子中,我们使用 UpdateWrapper 的 in 方法设置更新条件,根据 id 列的值在数据集合中进行匹配;然后使用 set 方法设置要更新的字段和值,这里我们将用户名和年龄设置为默认值;最后调用 userService 的 update 方法进行批量更新,该方法会自动使用 MyBatis-Plus 的 batchUpdate 方法进行实际操作。
注意,调用 batchUpdate 方法时,需要传入一个 UpdateWrapper 对象和要更新的数据集合。如果更新成功,该方法会返回受影响的行数。
阅读全文