码迷,mamicode.com
首页 > 其他好文 > 详细

每天玩转3分钟 MyBatis-Plus - 3. 高级查询(一)(条件构造器)

时间:2020-01-29 19:49:20      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:sele   讲解   这一   mapper   The   ati   数据   ora   lis   

每天玩转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 表结构如下:

idnameageemail
1 Jone 18 test1@baomidou.com
2 Jack 20 test2@baomidou.com
3 Tom 28 test3@baomidou.com
4 Sandy 21 test4@baomidou.com
5 Billie 24 test5@baomidou.com

 

 

一、案例汇总(第一波)

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     }

每天玩转3分钟 MyBatis-Plus - 3. 高级查询(一)(条件构造器)

标签:sele   讲解   这一   mapper   The   ati   数据   ora   lis   

原文地址:https://www.cnblogs.com/jackson0714/p/study-mybatis-plus3.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!