溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MybatisPlus查詢條件為空字符串或null怎么解決

發布時間:2022-06-28 14:23:47 來源:億速云 閱讀:3793 作者:iii 欄目:開發技術

這篇文章主要介紹“MybatisPlus查詢條件為空字符串或null怎么解決”,在日常操作中,相信很多人在MybatisPlus查詢條件為空字符串或null怎么解決問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MybatisPlus查詢條件為空字符串或null怎么解決”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

查詢條件為空字符串或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

MybatisPlus查詢條件為空字符串或null怎么解決

condition是一個布爾值,當conditionfalse

時,當前這個條件方法不會生效,即生成的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都是為空。

MybatisPlus查詢條件為空字符串或null怎么解決

因為我在Product、和ProductDto里的字段:store_id, brand_id

因為yaml配置開啟了駝峰,所以就不能映射到數據庫表中的store_id和brand_id字段。

所以把數據庫字段和javaBean、Dto的字段都設置為駝峰命名就可以了。

MybatisPlus查詢條件為空字符串或null怎么解決

到此,關于“MybatisPlus查詢條件為空字符串或null怎么解決”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女