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(&ldquo;name&rdquo;, &ldquo;老王&rdquo;) 等价于  name = &lsquo;老王&rsquo;

查询时某些字段为null的问题

在SpringBoot+Mybatis项目执行时发现,Mybatis查询的数据中的某些字段为null

在网站上搜索得到的是mybatis配置中需要添加一段配置驼峰命名法

mybatis:configuration:map-underscore-to-camel-case: true

但在公司项目中这个配置是已经配置的了,经过测试还是无法获取正确的值

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

经过自己查看代码后发现,是字段无法映射到对应的实体上,即charging_name(entity)->charging_name(database)

将实体类的charging_name修改为chargingName,开启驼峰命名法,就可以获取正确的值了。

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

来源:https://luoyong.blog.csdn.net/article/details/98621712

标签:mybatis-plus,判断参数,查询条件
0
投稿

猜你喜欢

  • Java源码解析HashMap的keySet()方法

    2023-11-11 06:33:05
  • java求余的技巧汇总

    2023-08-06 06:33:16
  • 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
  • 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
  • 重温C# clr 笔记总结

    2023-06-22 02:24:30
  • iOS中的导航栏UINavigationBar与工具栏UIToolBar要点解析

    2023-07-08 16:52:22
  • Java内存模型与JVM运行时数据区的区别详解

    2023-11-24 13:29:08
  • Hibernate实现批量添加数据的方法

    2023-11-29 08:53:56
  • Java面向对象编程的三大特征

    2023-09-19 06:20:34
  • Spring Boot2如何构建可部署的war包

    2023-11-29 06:40:59
  • Spring5中的WebClient使用方法详解

    2023-08-05 14:50:24
  • 为什么不要使用 async void的原因分析

    2023-11-24 21:10:27
  • 常见的java面试题

    2023-11-26 18:03:44
  • asp之家 软件编程 m.aspxhome.com