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

 更新时间:2022年03月10日 10:20:22   作者:bug菌¹  
这篇文章主要介绍了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,开启驼峰命名法,就可以获取正确的值了。

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

相关文章

  • SpringBoot导出Excel的四种实现方式

    SpringBoot导出Excel的四种实现方式

    近期接到了一个小需求,要将系统中的数据导出为Excel,且能将Excel数据导入到系统,对于大多数研发人员来说,这算是一个最基本的操作了,本文就给大家总结一下SpringBoot导出Excel的四种实现方式,需要的朋友可以参考下
    2024-01-01
  • Java的分片上传功能的实现

    Java的分片上传功能的实现

    本文主要介绍了Java的分片上传功能的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • java使用JNA(Java Native Access)调用dll的方法

    java使用JNA(Java Native Access)调用dll的方法

    java使用JNA(Java Native Access)调用windows系统的dll文件的例子
    2013-11-11
  • Java按值传递和按址传递(面试常见)

    Java按值传递和按址传递(面试常见)

    这篇文章主要介绍了Java按值传递和按址传递(面试常见)知识,在面试笔试题中经常会遇到,今天小编给大家详细介绍下,需要的朋友可以参考下
    2017-02-02
  • intellij idea中安装、配置mybatis插件Free Mybatis plugin的教程详解

    intellij idea中安装、配置mybatis插件Free Mybatis plugin的教程详解

    这篇文章主要介绍了intellij idea中安装、配置mybatis插件Free Mybatis plugin的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 详解java 中Spring jsonp 跨域请求的实例

    详解java 中Spring jsonp 跨域请求的实例

    这篇文章主要介绍了详解java 中Spring jsonp 跨域请求的实例的相关资料,jsonp 可用于解决主流浏览器的跨域数据访问的问题,需要的朋友可以参考下
    2017-08-08
  • Java SMM框架关联关系映射示例讲解

    Java SMM框架关联关系映射示例讲解

    SSM框架是spring MVC ,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层,使用spring MVC负责请求的转发和视图管理,spring实现业务对象管理,mybatis作为数据对象的持久化引擎
    2022-08-08
  • 聊聊Kotlin 中 lateinit 和 lazy 的原理区别

    聊聊Kotlin 中 lateinit 和 lazy 的原理区别

    使用 Kotlin 进行开发,对于 latelinit 和 lazy 肯定不陌生。但其原理上的区别,可能鲜少了解过,借着本篇文章普及下这方面的知识,感兴趣的朋友一起看看吧
    2022-07-07
  • SpringBoot整合jersey的示例代码

    SpringBoot整合jersey的示例代码

    本篇文章主要介绍了SpringBoot整合jersey的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 一篇文章带你详解Spring的AOP

    一篇文章带你详解Spring的AOP

    这篇文章主要为大家介绍了Spring的AOP,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01

最新评论