mybatis-plus根据id批量修改某一个字段
时间: 2023-07-18 18:08:10 浏览: 747
Mybatis Plus 自定义批量插入或批量更新(根据唯一索引)
可以使用 Mybatis-Plus 提供的 `updateBatchById` 方法实现根据 id 批量更新某个字段的值。
示例代码:
```java
List<Long> idList = Arrays.asList(1L, 2L, 3L); // 待更新的 id 列表
Integer status = 1; // 新的状态值
UpdateWrapper<Entity> updateWrapper = new UpdateWrapper<>();
updateWrapper.in("id", idList); // 设置更新条件,即 id 在指定列表中
updateWrapper.set("status", status); // 设置要更新的字段及其新值
int rows = entityMapper.update(null, updateWrapper); // 执行批量更新操作
```
以上代码中,`idList` 是待更新的 id 列表,`status` 是新的状态值,`EntityMapper` 是 Mybatis-Plus 自动生成的 Mapper 接口,`Entity` 是对应的实体类。`UpdateWrapper` 是 Mybatis-Plus 提供的条件构造器,用于构建更新条件和更新内容。
`updateWrapper.in("id", idList)` 方法用于设置更新条件,即 id 在指定列表中。`updateWrapper.set("status", status)` 方法用于设置要更新的字段及其新值。`entityMapper.update(null, updateWrapper)` 方法执行批量更新操作,返回更新的行数。
需要注意的是,如果要更新的字段是乐观锁字段,需要在更新操作中同时更新版本号,否则会导致更新失败。此时可以使用 `updateBatchById(Collection<T> entityList, int batchSize)` 方法,该方法会自动判断乐观锁字段并进行更新。
阅读全文