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

Mybatis?Plus?QueryWrapper復合用法詳解

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

QueryWrapper復合用法

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

這里主要記錄一下QueryWrapper的復雜查詢用法

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小結

mybatisplus自定義分頁查詢

接口:

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
//實現(xiàn)類
?public PageList pageQuery(PageArgument pageArgument) ?{
? ? ? ? //放入查詢參數(shù)
? ? ? ? QueryWrapper queryWrapper=new ?QueryWrapper ();
? ? ? ? //注意放入?yún)?shù)格式,關聯(lián)查詢要寫別名
? ? ? ? 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自定義:
?<!-- 分頁查詢-->
? ? <select id="pageQueryTestUser" resultType="TestUser">
? ? ? ? ? ? select b.* from TestUser b
? ? ? ? ? ? inner join TestStudent ?i on i.id=b.id ?${ew.customSqlSegment}
? ? </select>

其中ew.customSqlSegment

對應條件構造器queryWrapper里的條件,會在sql中自動拼接,不需要在sql中再寫判斷條件userId=#{userId}這樣的。

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

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

有關queryWrapper使用or條件時

把or條件單獨隔離,不影響后邊的條件

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");

這樣拼接出來的條件就是,Consumer就相當于一個括號把or條件獨立了

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

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

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

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

相關文章

  • Spring Data Redis對象緩存序列化問題解決

    Spring Data Redis對象緩存序列化問題解決

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

    Spring中的接口重試機制解析

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

    Mybatis?Plus?逆向工程介紹

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

    以實例講解Objective-C中的KVO與KVC機制

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

    關于連接遠程redis的流程

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

    @Async注解的使用以及注解失效問題的解決

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

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

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

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

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

    一文帶你玩轉Java異常處理

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

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

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

最新評論

楚雄市| 施秉县| 晋中市| 连城县| 清流县| 古田县| 北海市| 天津市| 嘉鱼县| 武乡县| 海宁市| 盐津县| 梅河口市| 永修县| 曲麻莱县| 通州市| 紫金县| 英山县| 交口县| 芒康县| 茌平县| 甘洛县| 墨江| 平遥县| 安西县| 静乐县| 长武县| 简阳市| 利川市| 团风县| 安徽省| 蕲春县| 邹城市| 永城市| 临沂市| 晋中市| 资源县| 凌云县| 韩城市| 洮南市| 奉新县|