最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis?Plus?QueryWrapper復(fù)合用法詳解

 更新時(shí)間:2022年01月11日 10:57:06   作者:LGVT  
這篇文章主要介紹了Mybatis?Plus?QueryWrapper復(fù)合用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

QueryWrapper復(fù)合用法

Mybatis Plus作為一個(gè)強(qiáng)大的msql插件,簡(jiǎn)化了DAO許多操作,使得我們的代碼看上去更加優(yōu)雅一些;

這里主要記錄一下QueryWrapper的復(fù)雜查詢(xún)用法

LambdaQueryWrapper<T> queryWrapper = new QueryWrapper<T>().lambda();
queryWrapper.eq(DTO::gexxx, param);
queryWrapper.and(wrapper -> wrapper
        .eq(T::getxxx, param)
        .or()
        .like(T::getxxx, param));

使用QueryWrapper小結(jié)

mybatisplus自定義分頁(yè)查詢(xún)

接口:

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
//實(shí)現(xiàn)類(lèi)
?public PageList pageQuery(PageArgument pageArgument) ?{
? ? ? ? //放入查詢(xún)參數(shù)
? ? ? ? QueryWrapper queryWrapper=new ?QueryWrapper ();
? ? ? ? //注意放入?yún)?shù)格式,關(guān)聯(lián)查詢(xún)要寫(xiě)別名
? ? ? ? queryWrapper.eq(StringUtils.isNotBlank(user.getId()), "b.id",user.getId());
? ? ??
? ? ? ? Page page = new Page();
? ? ? ? IPage<TestUser> temp = testMapper.pageQueryBaseline(new Page<TestUser>(pageArgument.getPage(), pageArgument.getRows()), queryWrapper);
? ? ? ? PageList pageList = new PageList();
? ? ? ? pageList.setTotal(temp.getTotal());
? ? ? ? pageList.setPageNum(pageArgument.getPage());
? ? ? ? pageList.setPageSize(pageArgument.getRows());
? ? ? ? pageList.setList(temp.getRecords());
? ? ? ? return pageList;
}
---------------------------------------------------------------------------
//Mapper接口
@Mapper
public interface TestMapper extends BaseMapper<TestUser> {
? ? <E extends IPage<TestUser>> E pageQueryTestUser(E page, @Param(Constants.WRAPPER) Wrapper<TestUser> queryWrapper);
}
--------------------------------------------------------------------------
sql自定義:
?<!-- 分頁(yè)查詢(xún)-->
? ? <select id="pageQueryTestUser" resultType="TestUser">
? ? ? ? ? ? select b.* from TestUser b
? ? ? ? ? ? inner join TestStudent ?i on i.id=b.id ?${ew.customSqlSegment}
? ? </select>

其中ew.customSqlSegment

對(duì)應(yīng)條件構(gòu)造器queryWrapper里的條件,會(huì)在sql中自動(dòng)拼接,不需要在sql中再寫(xiě)判斷條件userId=#{userId}這樣的。

QueryWrapper 設(shè)置參數(shù)幾種格式

queryWrapper.eq(“userid”,“aa”); //相當(dāng)于userid=#{userid}
queryWrapper.like(“userid”,“aa”); //相當(dāng)于模糊查詢(xún)
queryWrapper.eq(StringUtils.isNotBlank(user.getId()), “b.id”,user.getId()); //先判斷這個(gè)參數(shù)是不是空,為空則不放入,不為空則放入?yún)?shù)
queryWrapper.isNull(“userid”) //相當(dāng)于where userid is null

有關(guān)queryWrapper使用or條件時(shí)

把or條件單獨(dú)隔離,不影響后邊的條件

import java.util.function.Consumer;
?QueryWrapper queryWrapper = new QueryWrapper();
? ?Consumer<QueryWrapper> consumer = qw -> {
? ? ? ? ? ? ? ? qw.eq("module", "b管理");
? ? ? ? ? ? ? ? qw.or();
? ? ? ? ? ? ? ? qw.eq("module", "a管理");
? ? ? ? ? ? };
queryWrapper.and(consumer);
queryWrapper.eq("name", "123");

這樣拼接出來(lái)的條件就是,Consumer就相當(dāng)于一個(gè)括號(hào)把or條件獨(dú)立了

where (module=‘a(chǎn)管理' or module=‘b管理') and name='123'

不用Consumer直接用.or(),就會(huì)導(dǎo)致條件變成這樣:

where module=a管理' or module=‘b管理' and name=‘123'
or后邊是—> module=‘b管理' and name=‘123'

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Data Redis對(duì)象緩存序列化問(wèn)題解決

    Spring Data Redis對(duì)象緩存序列化問(wèn)題解決

    相信在項(xiàng)目中,你一定是經(jīng)常使用Redis,在使用時(shí),有沒(méi)有遇到同我一樣,對(duì)象緩存序列化問(wèn)題的呢,本文主要介紹了Spring Data Redis對(duì)象緩存序列化問(wèn)題解決,感興趣的可以了解一下
    2024-01-01
  • Spring中的接口重試機(jī)制解析

    Spring中的接口重試機(jī)制解析

    這篇文章主要介紹了Spring中的接口重試機(jī)制解析,大家在做項(xiàng)目的時(shí)候,往往會(huì)遇到一些接口由于網(wǎng)絡(luò)抖動(dòng)等問(wèn)題導(dǎo)致接口響應(yīng)超時(shí)等,這時(shí)候我們會(huì)希望能夠按照一定的規(guī)則進(jìn)行接口請(qǐng)求重試,需要的朋友可以參考下
    2024-01-01
  • Mybatis?Plus?逆向工程介紹

    Mybatis?Plus?逆向工程介紹

    這篇文章主要介紹了Mybatis?Plus?逆向工程,文章通過(guò)Mybatis?Plus?逆向工程相關(guān)資料及示例代碼詳細(xì)介紹,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考一下
    2022-01-01
  • 以實(shí)例講解Objective-C中的KVO與KVC機(jī)制

    以實(shí)例講解Objective-C中的KVO與KVC機(jī)制

    這篇文章主要介紹了以實(shí)例講解Objective-C中的KVO與KVC機(jī)制,即Key-Value-Observing與Key-Value-Coding,需要的朋友可以參考下
    2015-09-09
  • 關(guān)于連接遠(yuǎn)程redis的流程

    關(guān)于連接遠(yuǎn)程redis的流程

    這篇文章主要介紹了關(guān)于連接遠(yuǎn)程redis的流程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • @Async注解的使用以及注解失效問(wèn)題的解決

    @Async注解的使用以及注解失效問(wèn)題的解決

    在Spring框架中,@Async注解用于聲明異步任務(wù),可以修飾類(lèi)或方法,使用@Async時(shí),必須確保方法為public,且類(lèi)為Spring管理的Bean,啟用異步任務(wù)需要在主類(lèi)上添加@EnableAsync注解,默認(rèn)線程池為SimpleAsyncTaskExecutor
    2024-09-09
  • java使用單向鏈表解決數(shù)據(jù)存儲(chǔ)自定義排序問(wèn)題

    java使用單向鏈表解決數(shù)據(jù)存儲(chǔ)自定義排序問(wèn)題

    本文主要介紹了java使用單向鏈表解決數(shù)據(jù)存儲(chǔ)自定義排序問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 淺談Java四種線程池及new Thread的弊端

    淺談Java四種線程池及new Thread的弊端

    本文主要介紹了淺談Java四種線程池及new Thread的弊端,詳細(xì)的介紹了newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor四種的使用,感興趣的可以了解一下
    2024-01-01
  • 一文帶你玩轉(zhuǎn)Java異常處理

    一文帶你玩轉(zhuǎn)Java異常處理

    這篇文章主要為大家介紹一下Java中的異常處理機(jī)制,文中通過(guò)示例為大家進(jìn)行了詳細(xì)的介紹,對(duì)我們學(xué)習(xí)有一定的幫助,感興趣的可以了解一下
    2022-08-08
  • 44條Java代碼優(yōu)化建議

    44條Java代碼優(yōu)化建議

    代碼優(yōu)化的最重要的作用應(yīng)該是:避免未知的錯(cuò)誤。因此,在寫(xiě)代碼的時(shí)候,從源頭開(kāi)始注意各種細(xì)節(jié),權(quán)衡并使用最優(yōu)的選擇,將會(huì)很大程度上避免出現(xiàn)未知的錯(cuò)誤,從長(zhǎng)遠(yuǎn)看也極大的降低了工作量
    2018-03-03

最新評(píng)論

郧西县| 禹城市| 黄大仙区| 治县。| 新宾| 安顺市| 图片| 石嘴山市| 应城市| 泸水县| 靖远县| 巩留县| 安平县| 崇左市| 师宗县| 库尔勒市| 静安区| 诸城市| 湛江市| 甘肃省| 宕昌县| 新化县| 德庆县| 九寨沟县| 凤凰县| 临湘市| 夹江县| 安化县| 阜阳市| 东光县| 个旧市| 定安县| 东至县| 阳泉市| 沅江市| 山西省| 岳阳县| 开化县| 德令哈市| 济宁市| 揭东县|