每天玩轉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 表結構如下:

idnameageemail
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     }

 

 

 

每天玩轉3分鐘 MyBatis-Plus - 1. 配置環境

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

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

 

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


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

悟空聊架構 

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

還有111本書籍贈送~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章