每天玩轉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 | 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本書籍贈送~~