MyBatis-Plus高級(jí)查詢:條件構(gòu)造器的實(shí)現(xiàn)

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)參考:


作者: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)大。

Wrapper類的層次結(jié)構(gòu)

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);
    }
測(cè)試ge的執(zhí)行結(jié)果
查詢方式 說(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);
    }
測(cè)試eq的執(zhí)行結(jié)果
查詢方式 說(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);
    }
測(cè)試between的執(zhí)行結(jié)果
查詢方式 說(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);
    }
測(cè)試like的執(zhí)行結(jié)果
查詢方式 說(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);
    }
測(cè)試orderByDesc的執(zhí)行結(jié)果
查詢方式 說(shuō)明
orderBy 默認(rèn)升序排序
orderByDesc desc降序排序
orderByAsc asc升序排序

至此,常見(jiàn)的條件構(gòu)造器已經(jīng)介紹完畢!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容