mybatis-plus判断参数是否为空并作为查询条件方式

 更新时间:2026年05月16日 09:11:16   作者:慢慢变富的w  
这篇文章主要介绍了mybatis-plus判断参数是否为空并作为查询条件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

判断参数是否为空并作为查询条件

@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,开启驼峰命名法,就可以获取正确的值了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java高级-反射&动态代理详解

    Java高级-反射&动态代理详解

    这篇文章主要介绍了Java高级-反射&动态代理详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • springmvc和js前端的数据传递和接收方式(两种)

    springmvc和js前端的数据传递和接收方式(两种)

    本文介绍了springmvc和js前端的数据传递和接收方式(两种),详细的介绍了两种方式,一种是json格式传递,另一种是Map传递,具有一定的参考价值,有兴趣的可以了解一下
    2017-12-12
  • SpringAOP四种通知类型+环绕通知说明

    SpringAOP四种通知类型+环绕通知说明

    这篇文章主要介绍了SpringAOP四种通知类型+环绕通知说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • SpringBoot中TypeExcludeFilter的作用及使用方式

    SpringBoot中TypeExcludeFilter的作用及使用方式

    在SpringBoot应用程序中,TypeExcludeFilter通过过滤特定类型的组件,使它们不被自动扫描和注册为bean,这在排除不必要的组件或特定实现类时非常有用,通过创建自定义过滤器并注册到spring.factories文件中,我们可以在应用启动时生效
    2025-01-01
  • 一个Java的main方法在JVM中的执行流程示例详解

    一个Java的main方法在JVM中的执行流程示例详解

    main方法是Java程序的入口点,程序从这里开始执行,这篇文章主要介绍了一个Java的main方法在JVM中执行流程的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-09-09
  • Springboot项目对数据库用户名密码实现加密过程解析

    Springboot项目对数据库用户名密码实现加密过程解析

    这篇文章主要介绍了Springboot项目对数据库用户名密码实现加密过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Springboot基于enable模块驱动的实现

    Springboot基于enable模块驱动的实现

    这篇文章主要介绍了Springboot基于enable模块驱动的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Spring Boot中使用@Scheduled和Quartz实现定时任务的详细过程

    Spring Boot中使用@Scheduled和Quartz实现定时任务的详细过程

    Spring Boot提供了两种常见的定时任务实现方式,一种是基于@Scheduled注解的简单定时任务,另一种是功能更强大的Quartz框架,本文将介绍如何在Spring Boot中使用这两种方式实现定时任务和调度功能,感兴趣的朋友一起看看吧
    2025-08-08
  • mybatis调用mysql存储过程并获取返回值方式

    mybatis调用mysql存储过程并获取返回值方式

    这篇文章主要介绍了mybatis调用mysql存储过程并获取返回值方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Java虚拟机栈jvm栈的作用

    Java虚拟机栈jvm栈的作用

    本文主要介绍了Java虚拟机栈jvm栈的作用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11

最新评论