🐌个人主页: 🐌 叶落闲庭
💨我的专栏:💨
c语言
数据结构
javaEE
操作系统
石可破也,而不可夺坚;丹可磨也,而不可夺赤。
MyBatisPlus之DQL编程控制
- 一、 条件查询方式(三种格式)
- 二、 条件查询 -- -- null值处理
- 2.1 if语句控制追加
- 2.2 条件参数控制
- 2.3 条件参数控制(链式编程)
- 三、查询投影
- 3.1 查询结果包含模型类中部分属性
- 3.2 查询结果包含模型类中未定义的属性
一、 条件查询方式(三种格式)
- MyBatisPlus将书写复杂的SQL查询条件进行了封装,使用编程的形式完成查询条件的组合
- 格式一:常规格式
//方式一:按条件查询QueryWrapper qw = new QueryWrapper();//小于3qw.lt("id",3);List userList = userDao.selectList(qw);System.out.println(userList);
- 格式二:链式编程查询
QueryWrapper qw = new QueryWrapper();//小于3大于1qw.lt("id",3).gt("id",1);List userList = userDao.selectList(qw);System.out.println(userList);
- 格式三:lambda格式(推荐)
//方式三:lambda格式按条件查询LambdaQueryWrapper<User> lwq = new LambdaQueryWrapper<>();//id为1到3之间lwq.lt(User::getId,3);lwq.gt(User::getId,1);//id为小于2或者大于3//链式查询lwq.lt(User::getId,2).or().gt(User::getId,3);List userList = userDao.selectList(lwq);System.out.println(userList);
- 并且:
qw.lt("id",3).gt("id",1);
- 或者:
lwq.lt(User::getId,2).or().gt(User::getId,3);
二、 条件查询 – – null值处理
2.1 if语句控制追加
UserQuery uq = new UserQuery();uq.setId(1);uq.setId2(3);//null判定LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();if(null != uq.getId()) {lqw.lt(User::getId,uq.getId2());}if(null != uq.getId2()) {lqw.gt(User::getId,uq.getId());}List<User> userList = userDao.selectList(lqw);System.out.println(userList);
2.2 条件参数控制
//先判定第一个参数是否为true,如果为true,连接当前条件UserQuery uq = new UserQuery();uq.setId(1);uq.setId2(3);//null判定LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();lqw.gt(null!=uq.getId2(), User::getId, uq.getId())lqw.lt(null!= uq.getId(),User::getId,uq.getId2());List<User> userList = userDao.selectList(lqw);System.out.println(userList);
2.3 条件参数控制(链式编程)
//先判定第一个参数是否为true,如果为true,连接当前条件UserQuery uq = new UserQuery();uq.setId(1);uq.setId2(3);//null判定LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();lqw.gt(null!=uq.getId2(), User::getId, uq.getId()).lt(null!= uq.getId(),User::getId,uq.getId2());List<User> userList = userDao.selectList(lqw);System.out.println(userList);
三、查询投影
3.1 查询结果包含模型类中部分属性
LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();lqw.select(User::getId,User::getAddr);List<User> userList = userDao.selectList(lqw);System.out.println(userList);
3.2 查询结果包含模型类中未定义的属性
QueryWrapper<User> qw = new QueryWrapper<>();qw.select("count(*) as count");qw.groupBy("gender");List<Map<String, Object>> userList = userDao.selectMaps(qw);System.out.println(userList);