MybatisPlus查询条件为空字符串或null怎么解决

今天分享文章“MybatisPlus查询条件为空字符串null怎么解决”,主要从:问题描述、解决办法、eq()等几个方面为大家介绍,希望能帮到您。

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

MybatisPlus查询条件为空字符串或null怎么解决

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都是为空。

MybatisPlus查询条件为空字符串或null怎么解决

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

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

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

MybatisPlus查询条件为空字符串或null怎么解决

本文有关“MybatisPlus查询条件为空字符串或null怎么解决”的介绍就到这里,如果您已经掌握上述知识,那就赶紧行动实操一下!如果还需要了解更多“MybatisPlus查询条件为空字符串或null怎么解决”相关内容,可点击进入Worktile网站相关频道,进行搜索与查询。

文章标题:MybatisPlus查询条件为空字符串或null怎么解决,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/15069

(2)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云的头像亿速云认证作者
上一篇 2022年6月29日 上午2:14
下一篇 2022年6月29日 上午3:02

相关推荐

  • Python代码智能感知类型标注与特殊注释实例分析

    一、代码智能感知 想必大部分现代的集成开发环境(IDE)都有代码智能感知功能吧! 智能感知(IntelliSense),就是在我们写代码的时候,代码编辑器自动弹出我们代码中需要补全的部分,而这些补全的部分就是代码编辑器通过智能感知得到的,最重要的是,代码编辑器智能地感知补全的部分是通过代码中的变量的…

    2022年9月22日
    58200
  • 如何使用Masscan、Nmap、ELK做内网资产收集

    安装 安装masscan # yum install git gcc make libpcap-devel# git clone https://github.com/robertdavidgraham/masscan# cd masscan# make# cp bin/masscan /bin 安…

    2022年9月8日
    81500
  • 如何使用css实现​文本渐变

    文本渐变 文本渐变效果很流行,使用 CSS3 能够很简单就实现: h3[data-text] { position: relative;}h3[data-text]::after { content: attr(data-text); z-index: 10; color: #e3e3e3; pos…

    2022年9月1日
    36400
  • MySQL死锁怎么检测和避免

    在我们使用锁的时候,有一个问题是需要注意和避免的,我们知道,排它锁有互斥的特性。一个事务或者说一个线程持有锁的时候,会阻止其他的线程获取锁,这个时候会造成阻塞等待,如果循环等待,会有可能造成死锁。 这个问题我们需要从几个方面来分析,一个是锁为什么不释放,第二个是被阻塞了怎么办,第三个死锁是怎么发生的…

    2022年9月10日
    1.1K00
  • JavaScript支持的注释字符有哪些

    支持两种注释字符:1、单行注释符号“//”,只对所在行有效,可以位于代码段的不同位置,语法“//需要注释的内容”,“//”之后的所有内容都会看作是注释的内容。2、多行注释符号“/**/”,出现在“/*”和“*/”之间的所有内容都会看作是注释的内容,语法“/* 需要注释的内容 */”。 本教程操作环境…

    2022年9月24日
    53500
  • windows驱动精灵dx如何修复

    驱动精灵dx修复方法: 1、打开驱动精灵点击“百宝箱”。 2、点击右下方的“软件管理”。 3、在搜索栏中输入“Directx”。 4、找到“Directx 修复工具”点击“安装”即可。 感谢各位的阅读,以上就是“windows驱动精灵dx如何修复”的内容了,经过本文的学习后,相信大家对windows…

    2022年9月10日
    63100
  • windows deepl如何使用

    deepl使用方法 1、首先我们下载好deepl软件到本地,解压缩包。 点击exe程序,打开。 2、然后我们就打开这个软件了。 3、这里我们可以注册一个账号,也可以直接跳过去直接登录。 4、点击“开始翻译”就可以正式使用了。 关于“windows deepl如何使用”这篇文章的内容就介绍到这里,感谢…

    2022年9月26日
    83700
  • windows 0xc0150004如何修复

    0xc0150004修复方法: 方法一: 1、我们可能是缺少一些程序运行的必备组件,这个代码一般是缺少了“vc++” 2、大家可以直接在百度中搜索“Microsoft Visual C++ 2010”将该程序下载安装到电脑里。 3、下载安装完后,再进入系统“C:WindowsWinSxS”文件夹。 …

    2022年9月18日
    79300
  • windows office365怎么卸载干净

    office365卸载干净步骤: 1、左键你的开始菜单,找到设置,如图。 2、点击进入到应用中。 3、在应用与功能里找到和office365。 4、点击卸载。 6、将保留我的的数据和使用习惯取消勾选。 7、此时点击继续卸载,就会将残留文件也移除了。 到此,关于“windows office365怎么…

    2022年9月21日
    97500
  • program files可不可以删除

    “program files”不可以删除;“program files”文件夹是windows系统的程序文件夹,在系统安装完成后就已经生成,该文件夹用于存放已经安装的应用程序,位于C盘根目录,如果删除可能会导致系统运行的不稳定,导致操作系统的崩溃。 本教程操作环境:windows10系统、DELL …

    2022年9月10日
    1.3K00
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部