mybatis plus 的 UpdateWrapper 批量修改
时间: 2023-07-18 07:16:19 浏览: 221
MyBatis Plus 的 UpdateWrapper 可以用于批量修改操作。通过 UpdateWrapper 的 set 方法设置需要修改的字段和对应的值,通过 lambda 表达式指定需要修改的记录条件。例如:
```java
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.lambda().eq(User::getStatus, 0);
updateWrapper.set("status", 1);
int result = userMapper.update(null, updateWrapper);
```
以上代码表示将 User 表中 status 字段为 0 的记录的 status 字段值修改为 1。其中 userMapper 是 MyBatis Plus 自动生成的 Mapper 接口。update 方法的第一个参数为 null,表示不需要更新的实体对象,第二个参数为 UpdateWrapper 对象,表示需要更新的记录条件和更新的字段和值。执行 update 方法后,会返回更新的记录数。
相关问题
MyBatis Plus 3.3 批量修改
MyBatis Plus 3.3 提供了批量修改的功能,可以使用 UpdateWrapper 来完成。下面是一个示例代码:
```java
List<Integer> ids = Arrays.asList(1, 2, 3, 4, 5);
int age = 20;
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.in("id", ids);
updateWrapper.set("age", age);
int rows = userMapper.update(null, updateWrapper);
```
上面的代码中,我们定义了一个 List<Integer> ids 和一个 int age,表示要将 id 在 ids 列表中的用户的年龄修改为 age。然后,我们使用 UpdateWrapper 构建一个更新条件,指定要更新的字段和更新的值,然后调用 userMapper.update 方法执行更新操作。注意,第一个参数传入 null 表示更新所有符合条件的记录。
需要注意的是,批量修改操作只支持基本类型和包装类型,不支持复杂类型。如果需要修改复杂类型,可以使用自定义的 SQL 语句来实现。
mybatis plus 的批量更新
MyBatis-Plus是MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis-Plus提供了很多实用的功能,其中包括批量更新。
批量更新可以使用MyBatis-Plus提供的UpdateWrapper或LambdaUpdateWrapper来实现。以下是一个示例代码:
```
List<User> userList = new ArrayList<>();
User user1 = new User();
user1.setId(1L);
user1.setName("Tom");
userList.add(user1);
User user2 = new User();
user2.setId(2L);
user2.setName("Jerry");
userList.add(user2);
int result = userService.updateBatchById(userList);
```
在这个示例中,我们创建了一个包含两个User对象的List,然后调用了userService的updateBatchById方法来批量更新这些User对象。updateBatchById方法会返回更新的记录数。
需要注意的是,批量更新时需要在实体类中使用@TableField注解标注需要更新的字段,否则这些字段将不会被更新。
阅读全文
相关推荐













