mybatis-plus自定义更新sql语句,需要给一个字段分情况设置不同的值,如何写update语句
时间: 2023-07-04 17:11:22 浏览: 136
可以使用Mybatis-Plus的Wrapper来实现自定义的更新SQL语句。
假设我们要更新一个User实体类的age字段,根据不同的情况设置不同的值,可以按照如下步骤进行操作:
1. 定义Wrapper对象,使用lambda表达式构建查询条件,如下所示:
```java
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.lambda().eq(User::getId, 1);
```
2. 根据不同的情况设置不同的值,可以使用set方法来设置更新的字段和值,如下所示:
```java
if (age > 18) {
updateWrapper.set("age", 20);
} else {
updateWrapper.set("age", 18);
}
```
3. 调用Mybatis-Plus的update方法,传入更新条件和更新字段及值,如下所示:
```java
userMapper.update(null, updateWrapper);
```
完整的示例代码如下:
```java
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.lambda().eq(User::getId, 1);
if (age > 18) {
updateWrapper.set("age", 20);
} else {
updateWrapper.set("age", 18);
}
userMapper.update(null, updateWrapper);
```
注意:在使用set方法设置更新的字段和值时,需要使用数据库表的字段名,而不是实体类的属性名。
阅读全文