条件查询
December 28, 2022Less than 1 minute
条件查询
Wrapper 传统写法
示例:
QueryWrapper<User> qw = new QueryWrapper<>();
qw.lt("age", 10);
List<User> userList = userDao.selectList(qw);
缺点:
- 字段名无提示,容易写错
Wrapper Lambda 写法
示例:
QueryWrapper<User> qw = new QueryWrapper<>();
qw.lambda().lt(User::getAge, 10);
List<User> userList = userDao.selectList(qw);
缺点:
- 多个条件时反复写.lambda(),产生冗余
🌟 Lambda Wrapper 写法
LambdaQueryWrapper<User> lqw = new QueryWrapper<>();
// 同时写多个条件直接连接时为并且,如果需要或则.or()
lqw.gt(User::getAge, 10).lt(User::getAge, 30);
// lqw.gt(User::getAge, 10).or().lt(User::getAge, 30);
List<User> userList = userDao.selectList(lqw);
条件关系
链式编程
并且
直接相连
或者
.or()
IService#lambdaXXX()
Student one = studentService.lambdaQuery().eq(Student::getSno, 1).one();
List<Student> studentList = studentService.lambdaQuery().eq(Student::getAddress, "上海").list();
studentService.lambdaUpdate().eq(Student::getName,"张三").eq(Student::getAge,15).remove();
studentService.lambdaUpdate().set(Student::getAddress,"湖南").eq(Student::getSno,1).update();