每天玩转3分钟 MyBatis-Plus - 1. 配置环境
每天玩转3分钟 MyBatis-Plus - 2. 普通查询
每天玩转3分钟 MyBatis-Plus - 3. 高级查询
代码下载:https://github.com/Jackson0714/study-mybatis-plus.git
mybatis-plus的查询功能非常强大, 上一篇,我们介绍了mybatis-plus的普通查询功能,这一篇我们介绍mybatis-plus的高级查询功能。通过几个查询需求来讲解。
准备数据
User
表结构如下:
id | name | age | |
---|---|---|---|
1 | Jone | 18 | [email protected] |
2 | Jack | 20 | [email protected] |
3 | Tom | 28 | [email protected] |
4 | Sandy | 21 | [email protected] |
5 | Billie | 24 | [email protected] |
一、案例汇总(第一波)
1.1 查询名字中包含“Ja”并且年龄小于30的用户
难度系数 ★☆
1.2 查询名字中包含“a”并且年龄大于等于15且年龄小于等于25,且email不为空
难度系数 ★☆
1.3 查询名字中“J”开头并且年龄大于等于25,按照年龄降序排列,年龄相同按照id升序排列
难度系数 ★★★
二、案例讲解
1.1 查询名字中包含“Ja”并且年龄小于30的用户
难度系数 ★☆
考察 like、lt用法
name LIKE ‘%Ja%‘ age < 30
1 /* 2 * 描述:例2.1 查询名字中包含“Ja”并且年龄小于30的用户 3 * 作者:博客园-悟空聊架构 4 * 时间:2019-01-20 5 * Github:https://github.com/Jackson0714/study-mybatis-plus.git 6 * 博客园:https://www.cnblogs.com/jackson0714 7 * */ 8 @Test 9 public void testSelectByQueryWrapper() { 10 System.out.println(("----- 查询名字中包含“Ja”并且年龄小于30的用户------")); 11 QueryWrapper<User> queryWrapper = new QueryWrapper<>(); 12 queryWrapper.like("name", "ja").lt("age", 30); 13 List<User> userList = userMapper.selectList(queryWrapper); 14 userList.forEach(System.out::println); 15 }
1.2 查询名字中包含“a”并且年龄大于等于15且年龄小于等于25,且email不为空
难度系数 ★☆考察 between 用法
SQL语句:name LIKE ‘%a%‘ AND age BETWEEN 15 AND 25 AND email IS NOT NULL
1 /* 2 * 描述:例1.2 查询名字中包含“a”并且年龄大于等于15且年龄小于等于35,且email不为空 3 * 作者:博客园-悟空聊架构 4 * 时间:2019-01-20 5 * Github:https://github.com/Jackson0714/study-mybatis-plus.git 6 * 博客园:https://www.cnblogs.com/jackson0714 7 * */ 8 @Test 9 public void testSelectByQueryWrapper2() { 10 System.out.println(("----- 查询名字中包含“a”并且年龄大于等于15且年龄小于等于25,且email不为空------")); 11 QueryWrapper<User> queryWrapper = new QueryWrapper<>(); 12 //queryWrapper.like("name", "a").ge("age", 15).le("age", 25).isNotNull("email"); 13 queryWrapper.like("name", "a").between("age", 15,25).isNotNull("email"); 14 List<User> userList = userMapper.selectList(queryWrapper); 15 userList.forEach(System.out::println); 16 }
1.3 查询名字中“J”开头并且年龄大于等于25,按照年龄降序排列,年龄相同按照id升序排列
难度系数 ★★★
考察 likeRight、orderByDesc、orderByAsc 用法
SQL语句:name LIKE ‘J%‘ or age > 25 ORDER BY age desc, id ASC
1 /* 2 * 描述:例1.3 查询名字中“J”开头并且年龄大于26,按照年龄降序排列,年龄相同按照id升序排列 3 * SQL语句:name LIKE ‘J%‘ or age > 26 ORDER BY age desc, id ASC 4 * 作者:博客园-悟空聊架构 5 * 时间:2019-01-20 6 * Github:https://github.com/Jackson0714/study-mybatis-plus.git 7 * 博客园:https://www.cnblogs.com/jackson0714 8 * */ 9 @Test 10 public void testSelectByQueryWrapper3() { 11 System.out.println(("----- 查询名字中包含“a”并且年龄大于26,按照年龄降序排列,年龄相同按照id升序排列 ------")); 12 QueryWrapper<User> queryWrapper = new QueryWrapper<>(); 13 queryWrapper.likeRight("name","J").or().gt("age",26).orderByDesc("age") 14 .orderByAsc("id"); 15 List<User> userList = userMapper.selectList(queryWrapper); 16 userList.forEach(System.out::println); 17 }
原文地址:https://www.cnblogs.com/jackson0714/p/study-mybatis-plus3.html
时间: 2024-11-12 13:19:23