@Testpublicvoidtest3(){//删除email为空的用户// DELETE FROM t_user WHERE (email IS NULL)QueryWrapper<User>wrapper=newQueryWrapper<>();
wrapper.isNull("email");int result = userMapper.delete(wrapper);System.out.println(result);}
@Testpublicvoidtest4(){//将(年龄大于20并且用户名中包含有a)或邮箱为null的用户信息修改// UPDATE t_user SET age=?, email=? WHERE (username LIKE ? AND age > ? OR email IS NULL)QueryWrapper<User>wrapper=newQueryWrapper<>();
wrapper
.like("name","a").gt("age",20).or().isNull("email");User user=newUser();
user.setEmail("845195485@qq.com");
user.setAge(27);int result = userMapper.update(user, wrapper);System.out.println("result = "+ result);}@Testpublicvoidtest5(){//将用户名中包含有a并且(年龄大于20或邮箱为null)的用户信息修改//UPDATE t_user SET age=?, email=? WHERE (username LIKE ? AND (age > ? OR email IS NULL))// lambda表达式内的逻辑优先运算QueryWrapper<User>wrapper=newQueryWrapper<>();
wrapper
.like("name","a").and((user)->user.gt("age",20).or().isNull("email"));User user=newUser();
user.setEmail("128287979@qq.com");
user.setAge(26);int result = userMapper.update(user, wrapper);System.out.println("result = "+ result);}
@Testpublicvoidtest06(){//这里只是演示,知道子查询应该如何写,实际这个SQL没有任何的意义//查询id小于等于3的用户信息// SELECT id,username AS name,age,email,is_deleted FROM t_user WHERE (id IN (select id from t_user where id <= 3))QueryWrapper<User> queryWrapper =newQueryWrapper<>();
queryWrapper.inSql("id","select id from t_user where id <= 3");List<User> list = userMapper.selectList(queryWrapper);
list.forEach(System.out::println);}
③. 条件构造器 - UpdateWrapper
@Testpublicvoidtest8(){//将用户名中包含有a并且(年龄大于20或邮箱为null)的用户信息修改//UPDATE t_user SET name=? WHERE is_delete=0 AND (name LIKE ? AND (age > ? OR email IS NULL))UpdateWrapper<User>updateWrapper=newUpdateWrapper<>();
updateWrapper
.like("name","a").and(item->item.gt("age",20).or().isNull("email"));
updateWrapper.set("name","TANG_updataWrapper");int result = userMapper.update(null, updateWrapper);System.out.println("result = "+ result);}