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

简介: 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 = ‘老王’





目录
相关文章
|
16天前
|
XML Java 数据库连接
mybatis中在xml文件中通用查询结果列如何使用
mybatis中在xml文件中通用查询结果列如何使用
20 0
|
1月前
|
Java 关系型数据库 数据库连接
MyBatis Plus 解决大数据量查询慢问题
MyBatis Plus 解决大数据量查询慢问题
|
1月前
|
SQL Java 数据库连接
Mybatis查询的时候BigDecimal类型的值查询失效的解决办法
Mybatis查询的时候BigDecimal类型的值查询失效的解决办法
|
1月前
|
SQL Java 数据库连接
Mybatis拦截器实现带参数SQL语句打印
Mybatis拦截器实现带参数SQL语句打印
|
1月前
|
缓存 Java 数据库连接
MyBatis Plus的“幻查” 规范到底要怎样使用哪几个查询函数 为什么会出现幻查?还有幻删为什么会删不掉
MyBatis Plus的“幻查” 规范到底要怎样使用哪几个查询函数 为什么会出现幻查?还有幻删为什么会删不掉
|
1月前
|
SQL Java 关系型数据库
【MyBatis】3、一文介绍如何用 MyBatis 进行多表级联查询
【MyBatis】3、一文介绍如何用 MyBatis 进行多表级联查询
54 0
|
3月前
|
SQL Java 数据库连接
JAVAEE框架技术之9-myBatis高级查询技术文档
JAVAEE框架技术之9-myBatis高级查询技术文档
81 0
JAVAEE框架技术之9-myBatis高级查询技术文档
|
3月前
|
SQL 缓存 Java
JAVAEE框架技术之8-myBatis ORM框架技术参数和动态SQL语句
JAVAEE框架技术之8-myBatis ORM框架技术参数和动态SQL语句
64 0
JAVAEE框架技术之8-myBatis ORM框架技术参数和动态SQL语句