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)
第一個參數(shù) 為boolean類型 true就拼接上 flase就不拼接;
StringUtils.isNullOrEmpty()方法作用是
判斷對象或?qū)ο髷?shù)組中每一個對象是否為空: 對象為null,字符序列長度為0,集合類、Map為empty;
附上 isNullOrEmpty() 源碼
/**
* 判斷對象或?qū)ο髷?shù)組中每一個對象是否為空: 對象為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”, “老王”) 等價于 name = ‘老王’
查詢時某些字段為null的問題
在SpringBoot+Mybatis項目執(zhí)行時發(fā)現(xiàn),Mybatis查詢的數(shù)據(jù)中的某些字段為null
在網(wǎng)站上搜索得到的是mybatis配置中需要添加一段配置駝峰命名法
mybatis:configuration:map-underscore-to-camel-case: true
但在公司項目中這個配置是已經(jīng)配置的了,經(jīng)過測試還是無法獲取正確的值

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

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot快速整合Mybatis組件的方法(推薦)
Spring Boot是由Pivotal團(tuán)隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。這篇文章主要介紹了springboot快速整合Mybatis組件的方法,需要的朋友可以參考下2019-11-11
Spring中@Conditional注解的詳細(xì)講解及示例
這篇文章主要介紹了Spring中@Conditional注解的詳細(xì)講解及示例,@Conditional是Spring4新提供的注解,它的作用是按照一定的條件進(jìn)行判斷,滿足條件給容器注冊bean,需要的朋友可以參考下2023-11-11
關(guān)于protected修飾符詳解-源于Cloneable接口
這篇文章主要介紹了protected修飾符詳解-源于Cloneable接口,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
Java多線程編程基石ThreadPoolExecutor示例詳解
這篇文章主要為大家介紹了Java多線程編程基石ThreadPoolExecutor示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04

