- //方式一:按条件查询
- QueryWrapper qw = new QueryWrapper();
- qw.lt("age",18);
- List
userList = userDao.selectList(qw); - System.out.println(userList);
- //方式二:lambda格式按条件查询
- QueryWrapper
qw = new QueryWrapper(); - qw.lambda().lt(User::getAge, 10);
- List
userList = userDao.selectList(qw); - System.out.println(userList);
- //方式三:lambda格式按条件查询
- LambdaQueryWrapper
lqw = new LambdaQueryWrapper(); - lqw.lt(User::getAge, 10);
- List
userList = userDao.selectList(lqw); - System.out.println(userList);
- LambdaQueryWrapper
lqw = new LambdaQueryWrapper(); - //并且关系:10到30岁之间
- //lqw.lt(User::getAge, 30).gt(User::getAge, 10);
- //或者关系:小于10岁或者大于30岁
- lqw.lt(User::getAge, 10).or().gt(User::getAge, 30);
- List
userList = userDao.selectList(lqw); - System.out.println(userList);
在进行条件查询时,如果条件封闭不彻底则会出现null值。
初始:新建一个query包下的query类,继承要添加上下限的实体类,内部属性:年龄,薪资等有范围的数据。
- @Data
- public class UserQuery extends User {
- private Integer age2;
- }
- //模拟页面传递过来的查询数据
- UserQuery uq = new UserQuery();
- uq.setAge(10);
- uq.setAge2(30);
- //null判定
- LambdaQueryWrapper
lqw = new LambdaQueryWrapper(); - lqw.lt(User::getAge, uq.getAge2());
- if( null != uq.getAge()) {
- lqw.gt(User::getAge, uq.getAge());
- }
- List
userList = userDao.selectList(lqw); - System.out.println(userList);
- LambdaQueryWrapper
lqw = new LambdaQueryWrapper(); - //先判定第一个参数是否为true,如果为true连接当前条件
- // lqw.lt(null != uq.getAge2(),User::getAge, uq.getAge2());
- // lqw.gt(null != uq.getAge(),User::getAge, uq.getAge());
- lqw.lt(null != uq.getAge2(),User::getAge, uq.getAge2())
- .gt(null != uq.getAge(),User::getAge, uq.getAge());
- List
userList = userDao.selectList(lqw); - System.out.println(userList);
QueryWrapper适用于可以查询自定义字段的,有些如果不支持,则在dom层下的Mapper进行写入

- QueryWrapper
lqw = new QueryWrapper(); - lqw.select("count(*) as count, tel");
- lqw.groupBy("tel");
- List
- System.out.println(userList);
- //条件查询
- LambdaQueryWrapper
lqw = new LambdaQueryWrapper(); - //等同于=
- lqw.eq(User::getName,"Jerry").eq(User::getPassword,"jerry");
- User loginUser = userDao.selectOne(lqw);
- System.out.println(loginUser);

- LambdaQueryWrapper
lqw = new LambdaQueryWrapper(); - // //范围查询 lt le gt ge eq between
- lqw.between(User::getAge,10,30);
- List
userList = userDao.selectList(lqw); - System.out.println(userList);

- LambdaQueryWrapper
lqw = new LambdaQueryWrapper(); - // //模糊匹配 like,其中likeleft,likeright中的left和right是%匹配符的位置
- lqw.likeLeft(User::getName,"J");
- List
userList = userDao.selectList(lqw); - System.out.println(userList);
更多查询条件设置参看 https://mybatis.plus/guide/wrapper.html#abstractwrapper