x
//上面我们讲的两个都是LambdaQueryWrapper类的条件封装,下面就会讲LambdaUpdateWrapper类的条件封装
//注意修改是修改数据库的现有数据,而不是用户提供的数据,所以筛选用户数据这一步不用进行,直接创建条件构造器即可
public void zidingyi_test12(){
LambdaUpdateWrapper<User> updateWrapper = new LambdaUpdateWrapper<>();
//需求: 将用户名中包含a并且(年龄大于20或邮箱为null)的用户信息修改。注意上面演示过一次,当时用的是QueryWrapper类
//难点: 需要优先判断括号里的'年龄大于20或邮箱为null'条件
//创建条件构造器
updateWrapper.like(User::getName,"a")
.and(i->i.gt(User::getAge,20).or().isNull(User::getEmail));
//上面是满足什么条件我们就会对其进行修改,下面是要修改成什么数据
updateWrapper.set(User::getName,"LamUpdaWra修改你了").set(User::getEmail,"LamUpdaWra@123.com");//用链式编程修改多个字段数据
int result = userMapper.update(null, updateWrapper);//由于是修改操作,所以第一个参数可以不提供实体类对象。返回值是受影响的行数
System.out.println("受影响的行数是"+result);
}
//注意如果k条数据里有逻辑字段,并且逻辑字段不为空,并且k数据已经被逻辑删除了,那么此时执行这里的查询方法,k数据即使符合条件也不会被查询到