MyBatis-Plus实现条件查询的三种格式例举详解

 更新时间:2022年08月16日 17:02:55   作者:lxrqiyuan  
本文主要介绍了MyBatis-Plus三中条件查询格式的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

常规格式

常规格式即创建一个Wrapper的实现类QueryWrapper对象,将其传给selectList方法内部

		QueryWrapper qw = new QueryWrapper();
		//lt是小于,id小于5
		qw.lt("id",5);
		List<User> users = userDao.selectList(qw);
		System.out.println(users);

qw中的两个参数分别是数据库中的字段名id,查询的条件id<5。查询结果:

链式编程格式

若是多个条件,即小于多少并且等于多少,那就要用到链式编程

		QueryWrapper qw = new QueryWrapper();
		//大于2小于5
		qw.lt("id",5).gt("id",2);
		List<User> users = userDao.selectList(qw);
		System.out.println(users);

查询结果为:

lambda格式(推荐)

lambda格式又分为两种形式。使用时必须带上泛型

第一种仍然是使用QueryWrapper的对象

		QueryWrapper<User> qw = new QueryWrapper<User>();
		//lt是小于,id小于5
		qw.lambda().lt(User::getId,5);
		List<User> users = userDao.selectList(qw);
		System.out.println(users);

第二种就是直接使用LambdaQueryWrapper

		LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();
		//2-5,即3,4
		lqw.lt(User::getId,5).gt(User::getId,2);
		//上面是并且,下面是或
		//lqw.lt(User::getId,2).or().gt(User::getId,5);
		List<User> users = userDao.selectList(lqw);
		System.out.println(users);

条件查询null判定

你有没有想过为什么需要null判定?我们后端都是接收前端传来的数据来进行条件查询,并不是直接给个数据。

有这么一个情景:我们都上网买过东西吧,右上角会有一个筛选的选项,里面会有接受的最高价和最低价,我们并不是都会去填写这些信息,那么这些数据后端获取的时候就为空了,这时候我们就需要判。

当然我们可以使用 if 来判断,但是这样就不太友好。lt和gt两个方法都有两种不同的重载方法,我们上面使用的是第一种。

  //模拟获取前端的数据
		//UserQuery是User的继承类,这样既可以模仿id的上下限
        UserQuery uq = new UserQuery();
        uq.setId(7);
        uq.setId2(3);
        LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();
        lqw.lt(null!=uq.getId(),User::getId, uq.getId())
				.gt(null!=uq.getId2(),User::getId, uq.getId2());
        List<User> users = userDao.selectList(lqw);
        System.out.println(users);

最终结果:

到此这篇关于MyBatis-Plus实现条件查询的三种格式例举详解的文章就介绍到这了,更多相关MyBatis-Plus条件查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java开发Dubbo负载均衡与集群容错示例详解

    java开发Dubbo负载均衡与集群容错示例详解

    这篇文章主要为大家介绍了java开发Dubbo负载均衡与集群容错示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • spring boot Mybatis 拦截器实现拼接sql和修改的代码详解

    spring boot Mybatis 拦截器实现拼接sql和修改的代码详解

    这篇文章主要介绍了spring boot Mybatis 拦截器实现拼接sql和修改,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • java中不定长参数的实例用法

    java中不定长参数的实例用法

    在本篇文章里小编给大家分享的是关于java中不定长参数的使用方法以及相关代码内容,有兴趣的朋友们可以学习参考下。
    2020-02-02
  • jar的MANIFEST.MF配置Class-Path, java -classpath设置无效的解决

    jar的MANIFEST.MF配置Class-Path, java -classpath设置无效的解

    这篇文章主要介绍了jar的MANIFEST.MF配置Class-Path, java -classpath设置无效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Java使用OCR技术识别验证码实现自动化登陆方法

    Java使用OCR技术识别验证码实现自动化登陆方法

    在本篇文章里小编给大家分享的是关于Java 如何使用 OCR 技术识别验证码实现自动化登陆的相关知识点内容,需要的朋友们学习下。
    2019-08-08
  • 在java中使用dom解析xml的示例分析

    在java中使用dom解析xml的示例分析

    本篇文章介绍了,在java中使用dom解析xml的示例分析。需要的朋友参考下
    2013-05-05
  • Java基础之二叉搜索树的基本操作

    Java基础之二叉搜索树的基本操作

    发现许多小伙伴还不清楚Java二叉搜索树的基本操作,今天特地整理了这篇文章,文中有非常详细的代码示例,对正在学习Java的小伙伴很有帮助,需要的朋友可以参考下
    2021-05-05
  • Springboot2整合knife4j过程解析

    Springboot2整合knife4j过程解析

    这篇文章主要介绍了Springboot2整合knife4j过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Spring Integration概述与怎么使用详解

    Spring Integration概述与怎么使用详解

    公司项目需要用到spring integration,而网上关于spring integration的有价值的参考资料比较少,下面这篇文章主要给大家介绍了关于Spring Integration概述与怎么使用的相关资料,需要的朋友可以参考下
    2023-02-02
  • SpringBoot使用Minio进行文件存储的实现

    SpringBoot使用Minio进行文件存储的实现

    本文主要介绍了SpringBoot使用Minio进行文件存储的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07

最新评论