Mybatis-plus 查詢條件為空不生效問(wèn)題及解決
查詢條件為空不生效
-- mybatis-plus eq方法 default Children eq(R column, Object val) { ? ? return this.eq(true, column, val); } public Children eq(boolean condition, R column, Object val) { ? ? return this.addCondition(condition, column, SqlKeyword.EQ, val); }
以上是mybatis-puls wrapper條件構(gòu)造器 eq方法源碼,由上可見(jiàn),condition不傳遞值的時(shí)候,條件構(gòu)造器默認(rèn)填充的true。
因此,當(dāng)我們傳入的條件,不一定有值時(shí),可以在condition入?yún)⑽恢眠M(jìn)行判定,當(dāng)入?yún)榭栈蛘咦远x情況下,條件不生效,否則查詢條件都是生效的,即使為空。
例:
wrapper.eq(StringUtil.isNotBlank(infoVO.getMobile()), MsPlatformInfo::getPhone, infoVO.getMobile());
當(dāng)infoVO.getMobile()為空時(shí),StringUtil.isNotBlank(infoVO.getMobile()) = false,這種情況下,此條件在sql執(zhí)行時(shí)不生效
參數(shù)不生效
在使用mybatis-plus 傳遞參數(shù)一直不生效
打印sql 也是不顯示該參數(shù)
springboot yml文件添加打印sql配置
mybatis-plus: ? configuration: ?? ?log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #開啟sql日志
最后搜到是del_flag參數(shù)類型錯(cuò)誤?。?!
由于傳遞的是Integer類型,但是在xml里面判斷delFlag!=’’
只需要把 delFlag!=’’ 這個(gè)條件去掉就可以了
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Java實(shí)現(xiàn)簡(jiǎn)單串口通信
這篇文章主要介紹了使用Java實(shí)現(xiàn)簡(jiǎn)單串口通信,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07Java 實(shí)戰(zhàn)交易平臺(tái)項(xiàng)目之寵物在線商城系統(tǒng)
讀萬(wàn)卷書不如行萬(wàn)里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Java實(shí)現(xiàn)一個(gè)寵物在線商城系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平2021-11-11Spring @Retryable注解輕松搞定循環(huán)重試功能
spring系列的spring-retry是另一個(gè)實(shí)用程序模塊,可以幫助我們以標(biāo)準(zhǔn)方式處理任何特定操作的重試。在spring-retry中,所有配置都是基于簡(jiǎn)單注釋的。本文主要介紹了Spring@Retryable注解如何輕松搞定循環(huán)重試功能,有需要的朋友可以參考一下2023-04-04Springboot Druid 自定義加密數(shù)據(jù)庫(kù)密碼的幾種方案
這篇文章主要介紹了Springboot Druid 自定義加密數(shù)據(jù)庫(kù)密碼的步驟,幫助大家更好的理解和使用springboot,感興趣的朋友可以了解下2020-12-12詳解Spring Boot實(shí)戰(zhàn)之單元測(cè)試
本篇文章主要介紹了詳解Spring Boot實(shí)戰(zhàn)之單元測(cè)試,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07