mybatis-plus 如何判斷參數(shù)是否為空并作為查詢條件
判斷參數(shù)是否為空并作為查詢條件
@Override
? ? public Page<DemandEntity> selectByDepartmentDisplay(DemandEntity demandEntity) {
? ? ? ? EntityWrapper<DemandEntity> wrapper = new EntityWrapper<DemandEntity>();
? ? ? ? wrapper.eq(!StringUtils.isNullOrEmpty(demandEntity.getNameDemandDepartmentDispaly()),"name_demand_department_dispaly",demandEntity.getNameDemandDepartmentDispaly());
? ? ? ? Page<DemandEntity> demandEntityPage = this.selectPage(demandEntity.getPages(),wrapper);
? ? ? ? return demandEntityPage;
? ? }只需要在eq條件構(gòu)造器中只需要添加 一句判斷即可
!StringUtils.isNullOrEmpty(demandEntity.getNameDemandDepartmentDispaly()
為true,就拼接where條件;為Flase就不拼接;
?eq(boolean condition, R column, Object val) ? ?
第一個(gè)參數(shù) 為boolean類型 true就拼接上 flase就不拼接;
StringUtils.isNullOrEmpty()方法作用是
判斷對(duì)象或?qū)ο髷?shù)組中每一個(gè)對(duì)象是否為空: 對(duì)象為null,字符序列長度為0,集合類、Map為empty;
附上 isNullOrEmpty() 源碼
/**
? ? ?* 判斷對(duì)象或?qū)ο髷?shù)組中每一個(gè)對(duì)象是否為空: 對(duì)象為null,字符序列長度為0,集合類、Map為empty
? ? ?*
? ? ?* @param obj
? ? ?* @return
? ? ?*/
? ? public static boolean isNullOrEmpty(Object obj) {?
? ? ? ? if (obj == null) return true;?
? ? ? ? if (obj instanceof CharSequence) return ((CharSequence) obj).length() == 0;?
? ? ? ? if (obj instanceof Collection) return ((Collection) obj).isEmpty();?
? ? ? ? if (obj instanceof Map) return ((Map) obj).isEmpty();?
? ? ? ? if (obj instanceof Object[]) {
? ? ? ? ? ? Object[] object = (Object[]) obj;
? ? ? ? ? ? if (object.length == 0) {
? ? ? ? ? ? ? ? return true;
? ? ? ? ? ? }
? ? ? ? ? ? boolean empty = true;
? ? ? ? ? ? for (int i = 0; i < object.length; i++) {
? ? ? ? ? ? ? ? if (!isNullOrEmpty(object[i])) {
? ? ? ? ? ? ? ? ? ? empty = false;
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? return empty;
? ? ? ? }?
? ? ? ? return false;
? ? }---【拓展】---
eq
eq(R column, Object val) eq(boolean condition, R column, Object val)
等于
例: eq(“name”, “老王”) 等價(jià)于 name = ‘老王’
查詢時(shí)某些字段為null的問題
在SpringBoot+Mybatis項(xiàng)目執(zhí)行時(shí)發(fā)現(xiàn),Mybatis查詢的數(shù)據(jù)中的某些字段為null
在網(wǎng)站上搜索得到的是mybatis配置中需要添加一段配置駝峰命名法
mybatis:configuration:map-underscore-to-camel-case: true
但在公司項(xiàng)目中這個(gè)配置是已經(jīng)配置的了,經(jīng)過測(cè)試還是無法獲取正確的值

經(jīng)過自己查看代碼后發(fā)現(xiàn),是字段無法映射到對(duì)應(yīng)的實(shí)體上,即charging_name(entity)->charging_name(database)
將實(shí)體類的charging_name修改為chargingName,開啟駝峰命名法,就可以獲取正確的值了。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringMVC獲取請(qǐng)求參數(shù)筆記整理
本文記錄和分享在學(xué)習(xí)Spring MVC過程中的筆記,通過案例示例代碼分析給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
解決SpringCloud Config結(jié)合github無法讀取配置的問題
這篇文章主要介紹了解決SpringCloud Config結(jié)合github無法讀取配置的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02
由淺到深帶你詳談Java實(shí)現(xiàn)數(shù)組擴(kuò)容的三種方式
這篇文章主要詳細(xì)介紹了Java實(shí)現(xiàn)數(shù)組擴(kuò)容的三種方式,新建一個(gè)數(shù)組,把原來數(shù)組的內(nèi)容搬到新數(shù)組中,使用system.arraycopy(),使用java.util.Arrays.copyOf()這三種方式,具有一定的參考價(jià)值,需要的朋友可以借鑒一下2023-06-06
詳解spring boot starter redis配置文件
spring-boot-starter-Redis主要是通過配置RedisConnectionFactory中的相關(guān)參數(shù)去實(shí)現(xiàn)連接redis service。下面通過本文給大家介紹在spring boot的配置文件中redis的基本配置,需要的的朋友參考下2017-07-07
在X分鐘內(nèi)學(xué)會(huì)C#的入門簡明教程
C#是一個(gè)優(yōu)雅的、類型安全的面向?qū)ο笳Z言。使用C#,開發(fā)者可以在.NET框架下構(gòu)建安全而強(qiáng)大的應(yīng)用程序,閱讀本文可以快速的入門C#編程語言,需要的朋友可以參考下2014-03-03
BeanUtils.copyProperties在拷貝屬性時(shí)忽略空值的操作
這篇文章主要介紹了BeanUtils.copyProperties在拷貝屬性時(shí)忽略空值的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06

