MybatisPlus查詢條件為空字符串或null問(wèn)題及解決
查詢條件為空字符串或null問(wèn)題
問(wèn)題描述
工作種當(dāng)使用mybatisplus框架進(jìn)行條件查詢時(shí),會(huì)出現(xiàn)參數(shù)為空字符串或者null也走查詢條件,寫一篇文章記錄一下。
String name = "張三"; LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>(); lqw.eq(User::getName, name); List<User> userList = userMapper.selectList(lqw);
// 當(dāng)name為空字符串或null時(shí),最后生成的sql會(huì)變成 SELECT * FROM user WHERE name = ''; SELECT * FROM user WHERE name = null;
這就不好查了。
解決辦法
mybatisplus的條件構(gòu)造器方法 eq()、like()等這些方法能支持第三個(gè)參數(shù) condition

condition是一個(gè)布爾值,當(dāng)condition為false
時(shí),當(dāng)前這個(gè)條件方法不會(huì)生效,即生成的sql不會(huì)拼接這個(gè)條件;所以在這個(gè)參數(shù)里判斷查詢參數(shù)是否為空即可。
lqw.eq(StringUtils.hasText(name), User::getName, name);
主要還是對(duì)mybatis-plus不熟悉導(dǎo)致的。
查詢表的時(shí)候有些字段為空問(wèn)題
親測(cè),已經(jīng)解決
yaml:
mybatis:
mapper-locations: classpath:mapper/*.xml
# config-location: classpath:mybatis/mybatis-config.xml
configuration:
map-underscore-to-camel-case: true #開(kāi)啟駝峰命名模式商品ID和品牌ID都是為空。

因?yàn)槲以赑roduct、和ProductDto里的字段:store_id, brand_id
因?yàn)閥aml配置開(kāi)啟了駝峰,所以就不能映射到數(shù)據(jù)庫(kù)表中的store_id和brand_id字段。
所以把數(shù)據(jù)庫(kù)字段和javaBean、Dto的字段都設(shè)置為駝峰命名就可以了。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
spring+maven實(shí)現(xiàn)發(fā)送郵件功能
這篇文章主要為大家詳細(xì)介紹了spring+maven實(shí)現(xiàn)發(fā)送郵件功能,利用spring提供的郵件工具來(lái)發(fā)送郵件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
SpringBoot實(shí)現(xiàn)發(fā)送電子郵件
這篇文章主要介紹了SpringBoot實(shí)現(xiàn)發(fā)送電子郵件,電子郵件是—種用電子手段提供信息交換的通信方式,是互聯(lián)網(wǎng)應(yīng)用最廣的服務(wù)。通過(guò)網(wǎng)絡(luò)的電子郵件系統(tǒng),用戶可以非??焖俚姆绞?,與世界上任何一個(gè)角落的網(wǎng)絡(luò)用戶聯(lián)系,下面就來(lái)看看SpringBoot如何實(shí)現(xiàn)發(fā)送電子郵件吧2022-01-01
springboot+mybatis配置clickhouse實(shí)現(xiàn)插入查詢功能
這篇文章主要介紹了springboot+mybatis配置clickhouse實(shí)現(xiàn)插入查詢功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
SpringCloud微服務(wù)之Hystrix組件實(shí)現(xiàn)服務(wù)熔斷的方法
微服務(wù)架構(gòu)特點(diǎn)就是多服務(wù),多數(shù)據(jù)源,支撐系統(tǒng)應(yīng)用。這樣導(dǎo)致微服務(wù)之間存在依賴關(guān)系。這篇文章主要介紹了SpringCloud微服務(wù)之Hystrix組件實(shí)現(xiàn)服務(wù)熔斷的方法,需要的朋友可以參考下2019-08-08
Spring Security 圖片驗(yàn)證碼功能的實(shí)例代碼
spring security是一系列的過(guò)濾器鏈,所以在這里驗(yàn)證碼也聲明為過(guò)濾器,加在過(guò)濾器鏈的 登錄過(guò)濾器之前,然后自定義一個(gè)異常類,來(lái)響應(yīng)驗(yàn)證碼的錯(cuò)誤信息.這篇文章主要介紹了Spring Security 圖片驗(yàn)證碼,需要的朋友可以參考下2018-03-03
如何通過(guò)源碼了解Java的自動(dòng)裝箱拆箱詳解
裝箱就是把基本類型轉(zhuǎn)換成包裝類,拆箱就是把包裝類轉(zhuǎn)換成基本類型,下面這篇文章主要給大家介紹了關(guān)于如何通過(guò)源碼了解Java的自動(dòng)裝箱拆箱的相關(guān)資料,需要的朋友可以參考下2022-04-04
Java Apollo是如何實(shí)現(xiàn)配置更新的
這篇文章主要介紹了Java Apollo是如何實(shí)現(xiàn)配置更新的,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下2021-03-03
java中使用雙向鏈表實(shí)現(xiàn)貪吃蛇程序源碼分享
這篇文章主要介紹了java中使用雙向鏈表實(shí)現(xiàn)貪吃蛇程序源碼分享,本文直接給出了實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-03-03
java分頁(yè)攔截類實(shí)現(xiàn)sql自動(dòng)分頁(yè)
這篇文章主要為大家詳細(xì)介紹了java分頁(yè)攔截類可以實(shí)現(xiàn)sql自動(dòng)分頁(yè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11
Java面試題沖刺第四天--數(shù)據(jù)庫(kù)
這篇文章主要為大家分享了最有價(jià)值的三道數(shù)據(jù)庫(kù)面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下2021-07-07

