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