方法1:QueryWrapper<T>()
@Test
public void SelectTest1() {
//QueryWrapper<>():mybatisPlus内置的查询包装器
QueryWrapper<User> bqw = new QueryWrapper<>();
//< : < 小于号 > : > 大于号
bqw.lt("age", 50);
List<User> books = userRepository.selectList(bqw);
System.out.println(books);
}
方法2:lambda格式按条件查询
@Test
public void SelectTest2() {
QueryWrapper<User> bqw = new QueryWrapper<>();
//lambda格式按条件查询
bqw.lambda().lt(User::getAge, 50);
List<User> books = userRepository.selectList(bqw);
System.out.println(books);
}
方法3:LambdaQueryWrapper 单条件查询
@Test
void testSelectWrapper(){
LambdaQueryWrapper<User> ulqw = new LambdaQueryWrapper<>();
//< 小于号 > 大于号
ulqw.gt(User::getAge,91);
List<User> userList = userRepository.selectList(ulqw);
System.out.println(userList);
}
方法4:LambdaQueryWrapper 多条件查询
@Test
public void SelectTest4() {
LambdaQueryWrapper<User> ulqw = new LambdaQueryWrapper<User>();
//条件 :age取60到90之间的 ,链式编程
//取中间:并且(and)
ulqw.lt(User::getAge,90).gt(User::getAge,60);
//上面的一行和下面的两行结果一样
//blqw.lt(User::getAge,90);
//blqw.gt(User::getAge,60);
//取两端:or 结果是输出age大于90和小于60的
//blqw.gt(User::getAge, 90).or().lt(User::getAge, 60);
List<User> users = userRepository.selectList(ulqw);
System.out.println(users);
}
方法5:条件查询—null的处理
@Test
void testLambSelect(){
//模拟页面传递过来的查询数据
UserVo userVo = new UserVo();
userVo.setAge(60);
userVo.setAgeOther(90);
//null判定
LambdaQueryWrapper<User> ulqw = new LambdaQueryWrapper<>();
//判断传入参数是否为null,!= 返回true,如果返回的是true则连接当条件
//SELECT id,name,password,age,tel FROM user WHERE (age > 90 OR age < 60)
ulqw.gt(null != userVo.getAgeOther() ,User::getAge,userVo.getAgeOther()).or()
.lt(null != userVo.getAge() ,User::getAge,userVo.getAge());
List<User> users = userRepository.selectList(ulqw);
System.out.println(users);
}