MybatisPlus查询条件为空字符串或null问题及解决

 更新时间:2022年06月27日 15:47:33   作者:想望着太阳  
这篇文章主要介绍了MybatisPlus查询条件为空字符串或null问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

查询条件为空字符串或null问题

问题描述

工作种当使用mybatisplus框架进行条件查询时,会出现参数为空字符串或者null也走查询条件,写一篇文章记录一下。

String name = "张三";
LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
lqw.eq(User::getName, name);
List<User> userList = userMapper.selectList(lqw);
// 当name为空字符串或null时,最后生成的sql会变成
SELECT * FROM user WHERE name = '';
SELECT * FROM user WHERE name = null;

这就不好查了。

解决办法

mybatisplus的条件构造器方法 eq()like()等这些方法能支持第三个参数 condition

condition是一个布尔值,当conditionfalse

时,当前这个条件方法不会生效,即生成的sql不会拼接这个条件;所以在这个参数里判断查询参数是否为空即可。

lqw.eq(StringUtils.hasText(name), User::getName, name);

主要还是对mybatis-plus不熟悉导致的。

查询表的时候有些字段为空问题

亲测,已经解决

yaml:

mybatis:
  mapper-locations: classpath:mapper/*.xml
#  config-location: classpath:mybatis/mybatis-config.xml
  configuration:
    map-underscore-to-camel-case: true                                  #开启驼峰命名模式

商品ID和品牌ID都是为空。

因为我在Product、和ProductDto里的字段:store_id, brand_id

因为yaml配置开启了驼峰,所以就不能映射到数据库表中的store_id和brand_id字段。

所以把数据库字段和javaBean、Dto的字段都设置为驼峰命名就可以了。

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

相关文章

  • spring+maven实现发送邮件功能

    spring+maven实现发送邮件功能

    这篇文章主要为大家详细介绍了spring+maven实现发送邮件功能,利用spring提供的邮件工具来发送邮件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • SpringBoot实现发送电子邮件

    SpringBoot实现发送电子邮件

    这篇文章主要介绍了SpringBoot实现发送电子邮件,电子邮件是—种用电子手段提供信息交换的通信方式,是互联网应用最广的服务。通过网络的电子邮件系统,用户可以非常快速的方式,与世界上任何一个角落的网络用户联系,下面就来看看SpringBoot如何实现发送电子邮件吧
    2022-01-01
  • springboot+mybatis配置clickhouse实现插入查询功能

    springboot+mybatis配置clickhouse实现插入查询功能

    这篇文章主要介绍了springboot+mybatis配置clickhouse实现插入查询功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • SpringCloud微服务之Hystrix组件实现服务熔断的方法

    SpringCloud微服务之Hystrix组件实现服务熔断的方法

    微服务架构特点就是多服务,多数据源,支撑系统应用。这样导致微服务之间存在依赖关系。这篇文章主要介绍了SpringCloud微服务之Hystrix组件实现服务熔断的方法,需要的朋友可以参考下
    2019-08-08
  • Spring Security 图片验证码功能的实例代码

    Spring Security 图片验证码功能的实例代码

    spring security是一系列的过滤器链,所以在这里验证码也声明为过滤器,加在过滤器链的 登录过滤器之前,然后自定义一个异常类,来响应验证码的错误信息.这篇文章主要介绍了Spring Security 图片验证码,需要的朋友可以参考下
    2018-03-03
  • 如何通过源码了解Java的自动装箱拆箱详解

    如何通过源码了解Java的自动装箱拆箱详解

    装箱就是把基本类型转换成包装类,拆箱就是把包装类转换成基本类型,下面这篇文章主要给大家介绍了关于如何通过源码了解Java的自动装箱拆箱的相关资料,需要的朋友可以参考下
    2022-04-04
  • Java Apollo是如何实现配置更新的

    Java Apollo是如何实现配置更新的

    这篇文章主要介绍了Java Apollo是如何实现配置更新的,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-03-03
  • java中使用双向链表实现贪吃蛇程序源码分享

    java中使用双向链表实现贪吃蛇程序源码分享

    这篇文章主要介绍了java中使用双向链表实现贪吃蛇程序源码分享,本文直接给出了实现代码,需要的朋友可以参考下
    2015-03-03
  • java分页拦截类实现sql自动分页

    java分页拦截类实现sql自动分页

    这篇文章主要为大家详细介绍了java分页拦截类可以实现sql自动分页,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Java面试题冲刺第四天--数据库

    Java面试题冲刺第四天--数据库

    这篇文章主要为大家分享了最有价值的三道数据库面试题,涵盖内容全面,包括数据结构和算法相关的题目、经典面试编程题等,感兴趣的小伙伴们可以参考一下
    2021-07-07

最新评论