每天玩轉3分鍾 MyBatis-Plus - 3. 高級查詢(一)(條件構造器)


每天玩轉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 email
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 - 1. 配置環境

每天玩轉3分鍾 MyBatis-Plus - 2. 普通查詢

每天玩轉3分鍾 MyBatis-Plus - 3. 高級查詢

 

關注公眾號:悟空聊架構,回復pmp,領取pmp資料!回復悟空,領取架構師資料!


作  者:悟空聊架構 
出  處:http://www.cnblogs.com/jackson0714/ 
關於作者:專注於移動開發。如有問題或建議,請多多賜教! 
版權聲明:本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。 
特此聲明:所有評論和私信都會在第一時間回復。也歡迎園子的大大們指正錯誤,共同進步。或者直接私信我 
聲援博主:如果您覺得文章對您有幫助,可以點擊文章右下角推薦】一下。您的鼓勵是作者堅持原創和持續寫作的最大動力! 

悟空聊架構 

關注我,帶你每天進步一點點!

還有111本書籍贈送~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM