目录
子查询
- 使用BaseMapper接口中的selectList方法,传入参数QueryWrapper
- 使用BaseMapper接口中的selectList方法,传入参数QueryWrapper,写法2
- 使用BaseMapper接口中的selectList方法,传入参数QueryWrapper
嵌套查询
- 使用BaseMapper接口的selectList方法,传入参数QueryWrapper
- 使用BaseMapper接口的selectList方法,传入参数QueryWrapper,写法2
- 使用BaseMapper接口的selectList方法,传入参数QueryWrapper
子查询
- 使用BaseMapper接口中的selectList方法,传入参数QueryWrapper
| @RequestMapping("/test5") |
| @ResponseBody |
| public String test5() { |
| // 查询role_id为2的对象 |
| List<User> plainUsers2 = userMapper.selectList(new QueryWrapper<User>() |
| .inSql("role_id", "select id from role where id = 2")); |
| // 使用lambda表达式 |
| List<User> lambdaUsers2 = userMapper.selectList(new QueryWrapper<User>().lambda() |
| .inSql(User::getRoleId, "select id from role where id = 2")); |
| return "success"; |
| } |
| |
| |
| SELECT id,name,age,email,role_id FROM user WHERE (role_id IN (select id from role where id = 2)) |
| SELECT id,name,age,email,role_id FROM user WHERE (role_id IN (select id from role where id = 2)) |
- 使用BaseMapper接口中的selectList方法,传入参数QueryWrapper,写法2
| @RequestMapping("/test5") |
| @ResponseBody |
| public String test5() { |
| List<User> plainUsers2 = userMapper.selectList(new LambdaQueryWrapper<User>() |
| .inSql(User::getRoleId, "select id from role where id = 2")); |
| List<User> lambdaUsers2 = userMapper.selectList(new QueryWrapper<User>().lambda() |
| .inSql(User::getRoleId, "select id from role where id = 2")); |
| return "success"; |
| } |
| |
| |
| SELECT id,name,age,email,role_id FROM user WHERE (role_id IN (select id from role where id = 2)) |
| SELECT id,name,age,email,role_id FROM user WHERE (role_id IN (select id from role where id = 2)) |
- 使用BaseMapper接口中的selectList方法,传入参数QueryWrapper
| @GetMapping("/test21") |
| @ResponseBody |
| public String test21() { |
| QueryWrapper<User> queryWrapper = new QueryWrapper<>(); |
| queryWrapper.in("id", "select id from user where id < 5"); |
| List<User> users = userDao.selectList(queryWrapper); |
| users.forEach(user-> System.out.println(user)); |
| return "success"; |
| } |
| |
| # 控制台 |
| SELECT id,name,age,bir FROM user WHERE (id IN (?)) |
| select id from user where id < 5(String) |
| |
嵌套查询
- 使用BaseMapper接口的selectList方法,传入参数QueryWrapper
| @RequestMapping("/test5") |
| @ResponseBody |
| public String test5() { |
| // 查询role_id为2或role_id为3,同时age大于等于20的数据 |
| List<User> plainUsers3 = userMapper.selectList(new QueryWrapper<User>() |
| .nested(i -> i.eq("role_id", 2L).or().eq("role_id", 3L)) |
| .and(i -> i.ge("age", 20))); |
| // 使用lambda表达式 |
| List<User> lambdaUsers3 = userMapper.selectList(new QueryWrapper<User>().lambda() |
| .nested(i -> i.eq(User::getRoleId, 2L).or().eq(User::getRoleId, 3L)) |
| .and(i -> i.ge(User::getAge, 20))); |
| return "success"; |
| } |
| |
| |
| SELECT id,name,age,email,role_id FROM user WHERE ((role_id = ? OR role_id = ?) AND (age >= ?)) |
| SELECT id,name,age,email,role_id FROM user WHERE ((role_id = ? OR role_id = ?) AND (age >= ?)) |
- 使用BaseMapper接口的selectList方法,传入参数QueryWrapper,写法2
| @RequestMapping("/test5") |
| @ResponseBody |
| public String test5() { |
| List<User> plainUsers3 = userMapper.selectList(new LambdaQueryWrapper<User>() |
| .nested(i -> i.eq(User::getRoleId, 2L).or().eq(User::getRoleId, 3L)) |
| .and(i -> i.ge(User::getAge, 20))); |
| List<User> lambdaUsers3 = userMapper.selectList(new QueryWrapper<User>().lambda() |
| .nested(i -> i.eq(User::getRoleId, 2L).or().eq(User::getRoleId, 3L)) |
| .and(i -> i.ge(User::getAge, 20))); |
| return "success"; |
| } |
| |
| |
| SELECT id,name,age,email,role_id FROM user WHERE ((role_id = ? OR role_id = ?) AND (age >= ?)) |
| SELECT id,name,age,email,role_id FROM user WHERE ((role_id = ? OR role_id = ?) AND (age >= ?)) |
- 使用BaseMapper接口的selectList方法,传入参数QueryWrapper
| @RequestMapping("/test3") |
| @ResponseBody |
| public String test3(){ |
| QueryWrapper<User> w = new QueryWrapper<>(); |
| w.and(i -> i.eq("1", 1)) |
| .nested(i -> |
| i.and(j -> j.eq("name", "a").eq("age", 2)) |
| .or(j -> j.eq("name", "b").eq("age", 2))); |
| userMapper.selectList(w); |
| return "success"; |
| } |
| |
| |
| SELECT id,name,age,email,role_id FROM user WHERE ((1 = ?) AND ((name = ? AND age = ?) OR (name = ? AND age = ?))) |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
· 面试官:你是如何进行SQL调优的?