這篇文章主要介紹“MybatisPlus查詢條件為空字符串或null怎么解決”,在日常操作中,相信很多人在MybatisPlus查詢條件為空字符串或null怎么解決問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MybatisPlus查詢條件為空字符串或null怎么解決”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
工作種當使用mybatisplus框架進行條件查詢時,會出現參數為空字符串或者null也走查詢條件,寫一篇文章記錄一下。
String name = "張三"; LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>(); lqw.eq(User::getName, name); List<User> userList = userMapper.selectList(lqw);
// 當name為空字符串或null時,最后生成的sql會變成 SELECT * FROM user WHERE name = ''; SELECT * FROM user WHERE name = null;
這就不好查了。
mybatisplus的條件構造器方法 eq()、like()等這些方法能支持第三個參數 condition

condition是一個布爾值,當condition為false
時,當前這個條件方法不會生效,即生成的sql不會拼接這個條件;所以在這個參數里判斷查詢參數是否為空即可。
lqw.eq(StringUtils.hasText(name), User::getName, name);
主要還是對mybatis-plus不熟悉導致的。
yaml:
mybatis: mapper-locations: classpath:mapper/*.xml # config-location: classpath:mybatis/mybatis-config.xml configuration: map-underscore-to-camel-case: true #開啟駝峰命名模式
商品ID和品牌ID都是為空。

因為我在Product、和ProductDto里的字段:store_id, brand_id
因為yaml配置開啟了駝峰,所以就不能映射到數據庫表中的store_id和brand_id字段。
所以把數據庫字段和javaBean、Dto的字段都設置為駝峰命名就可以了。

到此,關于“MybatisPlus查詢條件為空字符串或null怎么解決”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。