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不傳遞值的時(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)文章
StringUtils,CollectionUtils判斷為空的方法和原生代碼哪個(gè)效率最高
這篇文章主要介紹了StringUtils,CollectionUtils判斷為空的方法和原生代碼哪個(gè)效率最高,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
SpringCloud基于RestTemplate微服務(wù)項(xiàng)目案例解析
這篇文章主要介紹了SpringCloud基于RestTemplate微服務(wù)項(xiàng)目案例,在寫SpringCloud搭建微服務(wù)之前,先搭建一個(gè)不通過springcloud只通過SpringBoot和Mybatis進(jìn)行模塊之間通訊,通過一個(gè)案例給大家詳細(xì)說明,需要的朋友可以參考下2022-05-05
java使用ffmpeg命令來實(shí)現(xiàn)視頻編碼轉(zhuǎn)換的示例
本文主要介紹了java使用ffmpeg命令來實(shí)現(xiàn)視頻編碼轉(zhuǎn)換的示例,可以通過調(diào)用系統(tǒng)命令來執(zhí)行FFmpeg命令,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07

