MyBatis-Plus在MyBatis的基礎(chǔ)上只做增強(qiáng),不做改變,目的是為了
簡(jiǎn)化開(kāi)發(fā),提高效率。本專欄六篇文章圍繞MyBatis-Plus的常用技術(shù)點(diǎn),結(jié)合springboot,實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫(kù)記錄的CRUD操作,其他文章請(qǐng)參考:
- 《MyBatis-Plus入門(mén)案例:查詢數(shù)據(jù)庫(kù)中所有記錄》
- 《MyBatis-Plus添加:常用主鍵策略的分析及實(shí)現(xiàn)》
- 《MyBatis-Plus更新:自動(dòng)填充與樂(lè)觀鎖的實(shí)現(xiàn)》
- 《MyBatis-Plus查詢:批量、條件、分頁(yè)查詢的實(shí)現(xiàn)》
- 《MyBatis-Plus刪除:物理刪除與邏輯刪除的實(shí)現(xiàn)》
- 《MyBatis-Plus高級(jí)查詢:條件構(gòu)造器的實(shí)現(xiàn)》
作者:Hudie
個(gè)人公眾號(hào)/CSDN博客:編程一只蝶
項(xiàng)目已開(kāi)源至gitee:https://gitee.com/guo-qianliang/mybatis-plus-test
項(xiàng)目已開(kāi)源至github:https://github.com/Guoqianliang/mybatis-plus-test
為了實(shí)現(xiàn)復(fù)雜條件的查詢,MyBatis-Plus為我們封裝了一個(gè)Wrapper對(duì)象。在下圖的層次結(jié)構(gòu)中,最常用的是QueryWrapper類,QueryWrapper類中的方法比Wrapper父類更豐富更強(qiáng)大。
QueryWrapper類的常用方法
1.ge、gt、le、lt
下面的代碼演示ge方法,gt、le、lt的使用方法與其相同:
// ge 大于等于
@Test
public void testSelect() {
// 1.創(chuàng)建Wrapper對(duì)象
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
// 2.構(gòu)造條件:使用ge查詢年齡大于等于21歲的記錄.
queryWrapper.ge("age", 21);
List<User> users = userMapper.selectList(queryWrapper);
System.out.println(users);
}
| 查詢方式 | 說(shuō)明 |
|---|---|
| gt | 大于 |
| ge | 大于等于 |
| lt | 小于 |
| le | 小于等于 |
2.eq、ne
下面的代碼演示eq方法,ne的使用方法與其相同:
// eq 等于
@Test
public void testSelect1() {
// 1.創(chuàng)建Wrapper對(duì)象
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
// 2.構(gòu)造條件:使用eq查詢name=xiaolong的記錄
queryWrapper.eq("name", "xiaolong");
List<User> users = userMapper.selectList(queryWrapper);
System.out.println(users);
}
| 查詢方式 | 說(shuō)明 |
|---|---|
| eq | 等于 |
| ne | 不等于 |
3.between、notBetween
下面的代碼演示between方法,notBetween的使用方法與其相同:
// between
@Test
public void testSelect2() {
// 1.創(chuàng)建Wrapper對(duì)象
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
// 2.構(gòu)造條件:使用between查詢年齡在[22,28]中的記錄
queryWrapper.between("age", 22, 28);
List<User> users = userMapper.selectList(queryWrapper);
System.out.println(users);
}
| 查詢方式 | 說(shuō)明 |
|---|---|
| between | between條件語(yǔ)句 |
| notBetween | notBetween 條件語(yǔ)句 |
4.like、notLike、likeLeft、likeRight
下面的代碼演示like方法,notLike、likeLeft、likeRight的使用方法與其相同:
// like
@Test
public void testSelect3() {
// 1.創(chuàng)建Wrapper對(duì)象
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
// 2.構(gòu)造條件:使用like查詢name=張xx的記錄
queryWrapper.like("name", "張");
List<User> users = userMapper.selectList(queryWrapper);
System.out.println(users);
}
| 查詢方式 | 說(shuō)明 |
|---|---|
| like | 模糊查詢like |
| notLike | 模糊查詢not Like |
| likeLeft | %模糊查詢 |
| likeRight | 模糊查詢% |
5.orderBy、orderByDesc、orderByAsc
下面的代碼演示orderBy方法,orderByDesc、orderByAsc的使用方法與其相同:
// orderByDesc
@Test
public void testSelect4() {
// 1.創(chuàng)建Wrapper對(duì)象
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
// 2.構(gòu)造條件:使用orderByDesc根據(jù)id對(duì)查詢結(jié)果降序排列
queryWrapper.orderByDesc("id");
List<User> users = userMapper.selectList(queryWrapper);
System.out.println(users);
}
| 查詢方式 | 說(shuō)明 |
|---|---|
| orderBy | 默認(rèn)升序排序 |
| orderByDesc | desc降序排序 |
| orderByAsc | asc升序排序 |
至此,常見(jiàn)的條件構(gòu)造器已經(jīng)介紹完畢!