mybatis-plus 如何判断参数是否为空并作为查询条件
作者:bug菌1 时间:2022-09-14 22:05:03
判断参数是否为空并作为查询条件
@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条件构造器中只需要添加 一句判断即可
!StringUtils.isNullOrEmpty(demandEntity.getNameDemandDepartmentDispaly()
为true,就拼接where条件;为Flase就不拼接;
eq(boolean condition, R column, Object val)
第一个参数 为boolean类型 true就拼接上 flase就不拼接;
StringUtils.isNullOrEmpty()方法作用是
判断对象或对象数组中每一个对象是否为空: 对象为null,字符序列长度为0,集合类、Map为empty;
附上 isNullOrEmpty() 源码
/**
* 判断对象或对象数组中每一个对象是否为空: 对象为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项目执行时发现,Mybatis查询的数据中的某些字段为null
在网站上搜索得到的是mybatis配置中需要添加一段配置驼峰命名法
mybatis:configuration:map-underscore-to-camel-case: true
但在公司项目中这个配置是已经配置的了,经过测试还是无法获取正确的值
经过自己查看代码后发现,是字段无法映射到对应的实体上,即charging_name(entity)->charging_name(database)
将实体类的charging_name修改为chargingName,开启驼峰命名法,就可以获取正确的值了。
来源:https://luoyong.blog.csdn.net/article/details/98621712
标签:mybatis-plus,判断参数,查询条件
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java源码解析HashMap的keySet()方法
2023-11-11 06:33:05
![](https://img.aspxhome.com/file/2023/7/58837_0s.png)
java求余的技巧汇总
2023-08-06 06:33:16
![](https://img.aspxhome.com/file/2023/8/57898_0s.jpg)
springboot项目配置多个kafka的示例代码
2023-11-23 23:15:29
使用Spring Security OAuth2实现单点登录
2023-08-13 01:44:34
jdk8使用stream实现两个list集合合并成一个(对象属性的合并)
2023-08-05 16:49:30
![](https://img.aspxhome.com/file/2023/5/57705_0s.png)
MFC程序设计常用技巧汇总
2023-11-02 20:37:12
Java常用类String的面试题汇总(java面试题)
2023-11-23 20:40:45
详解Java包装类及自动装箱拆箱
2023-11-14 21:13:23
java处理图片背景颜色的方法
2023-11-27 04:38:20
轻松掌握Java迭代器模式
2023-11-29 03:15:22
浅谈java中守护线程与用户线程
2023-11-26 20:46:41
![](https://img.aspxhome.com/file/2023/3/60173_0s.png)
重温C# clr 笔记总结
2023-06-22 02:24:30
iOS中的导航栏UINavigationBar与工具栏UIToolBar要点解析
2023-07-08 16:52:22
![](https://img.aspxhome.com/file/2023/7/98647_0s.png)
Java内存模型与JVM运行时数据区的区别详解
2023-11-24 13:29:08
Hibernate实现批量添加数据的方法
2023-11-29 08:53:56
![](https://img.aspxhome.com/file/2023/5/60815_0s.jpg)
Java面向对象编程的三大特征
2023-09-19 06:20:34
![](https://img.aspxhome.com/file/2023/8/58478_0s.png)
Spring Boot2如何构建可部署的war包
2023-11-29 06:40:59
![](https://img.aspxhome.com/file/2023/5/60365_0s.png)
Spring5中的WebClient使用方法详解
2023-08-05 14:50:24
为什么不要使用 async void的原因分析
2023-11-24 21:10:27
![](https://img.aspxhome.com/file/2023/5/60245_0s.jpg)
常见的java面试题
2023-11-26 18:03:44