mybatis-plus中如何根据多个条件,并利用updateById函数进行修改
时间: 2024-02-24 11:55:12 浏览: 21
MyBatis-Plus 中提供了 `UpdateWrapper` 和 `LambdaUpdateWrapper` 类,可以用于构建多条件的修改操作,同时可以利用 `updateById` 函数进行修改。
示例代码如下,假设我们要根据 id、name、age 和 gender 四个条件进行修改:
```java
// 使用 UpdateWrapper 构建条件
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id", id)
.eq("name", name)
.eq("age", age)
.eq("gender", gender);
// 构建要修改的字段
User user = new User();
user.setName(newName);
user.setAge(newAge);
user.setGender(newGender);
// 调用 updateById 函数进行修改
userMapper.update(user, updateWrapper);
```
这个示例代码中,我们首先使用 `UpdateWrapper` 构建了四个相等条件,然后构建了一个 `User` 对象,表示要修改的字段。最后,我们调用 `updateById` 函数,将 `User` 对象和 `UpdateWrapper` 对象作为参数传入即可。
如果要使用 `LambdaUpdateWrapper` 来构建条件,可以改写成下面这样:
```java
// 使用 LambdaUpdateWrapper 构建条件
LambdaUpdateWrapper<User> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.eq(User::getId, id)
.eq(User::getName, name)
.eq(User::getAge, age)
.eq(User::getGender, gender);
// 构建要修改的字段
User user = new User();
user.setName(newName);
user.setAge(newAge);
user.setGender(newGender);
// 调用 updateById 函数进行修改
userMapper.update(user, lambdaUpdateWrapper);
```
这个示例代码中,我们使用 `LambdaUpdateWrapper` 来构建四个相等条件,然后构建一个 `User` 对象,最后调用 `updateById` 函数进行修改。