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

相关推荐

  • linux中mysql 1045错误如何解决

    解决方法:1、登录数据库之后,利用“select host,user from user;”语句查询用户和权限;2、利用“grant select,update,insert,delete on mas.* to 新建用户@localhost identified by “密码&#822…

    2022年9月18日
    34300
  • redis实现清空缓存的方法是什么

    正文 1.首先进到redis的安装目录,进到src目录下,找到redis-cli 2.首先用账号密码的方式进入到redis的服务端 ./redis-cli -h 127.0.0.1 -p 6379 -a 1234 进去后会出现下面的界面ip:port>,你就可以操作啦 3. flushdb —…

    2022年8月29日
    23800
  • windows edge浏览器js错误表示如何解决

    edge浏览器js错误表示解决方法: 1、进入edge浏览器,点击右上角三个点依次打开“更多工具—>使用Internet explorer打开”。 2、点击右上方的齿轮设置,点击“Internet 选项”。 3、在Internet选项中选择“安全”点击下方的“自定义级别”。 4、下滑找到“脚本…

    2022年9月8日
    39800
  • MySQL死锁是什么及怎么掌握

    1、什么是死锁? 死锁指的是在两个或两个以上不同的进程或线程中,由于存在共同资源的竞争或进程(或线程)间的通讯而导致各个线程间相互挂起等待,如果没有外力作用,最终会引发整个系统崩溃。 2、Mysql出现死锁的必要条件 资源独占条件 指多个事务在竞争同一个资源时存在互斥性,即在一段时间内某资源只由一个…

    2022年9月1日
    20500
  • 如何使用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日
    39200
  • windows中360桌面助手如何整理桌面

    360桌面助手整理桌面方法: 1、首先打开自己的桌面选择空白处右击。 2、然后在弹出的菜单中点击“桌面助手”。 3、之后选择右侧菜单中的“一键整理桌面”。 4、最后就可以将桌面全部的整理完成了。 感谢各位的阅读,以上就是“windows中360桌面助手如何整理桌面”的内容了,经过本文的学习后,相信大…

    2022年8月31日
    23600
  • 对混淆变形的Webshell分析是怎样的

    WebShell是什么? 在最初的时候,Webshell经常被用来作为Web服务器管理员对服务器进行远程管理的一类脚本的简称。后来,随着一些Webshell管理工具的诞生,使得获取Web权限的过程被很大程度地简易化,于是逐渐被称为Web入侵的工具脚本。 Webshell不同于漏洞,而是利用应用漏洞或…

    2022年9月22日
    22200
  • windows你需要权限来执行此操作删除不了怎么解决

    解决方法: 1、首先右键存在问题的文件夹,打开“属性” 2、接着进入上方“安全”并点击“编辑” 3、然后选中我们正在使用的用户。 (如果没有就添加一个) 4、最后在下面全部勾选“允许”并确定保存即可。 关于“windows你需要权限来执行此操作删除不了怎么解决”这篇文章的内容就介绍到这里,感谢各位的…

    2022年8月31日
    64100
  • sql文件怎么导入数据库Navicat

    sql文件导入数据库Navicat: 1、首先需要创建数据库,然后在连接名字上右击建立“数据库”。 2、然后输入一个数据库的名称,这里举例为“utf-8”。 3、双击你新建的数据库,然后让其呈现绿色的状态,在数据右击选择“运行sql”。 4、之后点击右侧的三个点,来选择你要运行的“sql文件”。 5…

    2022年8月29日
    52900
  • windows msedge.exe应用程序有什么功能

    “msedge.exe”指的是“Microsoft Edge”网页浏览器软件;“Microsoft Edge”是由Microsoft开发的网页浏览器,该浏览器在2015年被正式命名,并且内置在了Windows10版本中;该浏览器与IE浏览器相比,Edge将支持现代浏览器功能,比如扩展。 本教程操作环…

    2022年9月10日
    58200
站长微信
站长微信
电话联系

400-800-1024

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

分享本页
返回顶部