MyBatisPlus条件查询的三种格式于null判定

2023-10-26

DQL编程控制
条件查询:MyBatisPlus将书写复杂的SQL查询条件进行了封装,使用编程的形式完成查询条件的组合
方式一:使用QueryWrapper查询数据,lt是小于的意思,price是数据表的字段名称(price容易写错,不推荐)

 void testGetAll(){
        //方式一:按条件查询
        QueryWrapper wrapper = new QueryWrapper<>();
        wrapper.lt("price",10);//查询数据库中的price属性值小于10的数据
        List<Book> bookList=bookDao.selectList(wrapper);
        System.out.println(bookList);
        System.out.println("-----------------");
   }

方式二:使用lambda格式进行查询,Book是一个对应book表的实体类(当查询条件多的时候要经常写lambda().xxx,所以不推荐)

 void testGetAll(){
        //方式二:lambda格式按条件查询
        QueryWrapper<Book> wrapper2 = new QueryWrapper<Book>();//添加泛型
        wrapper2.lambda().lt(Book::getPrice,10);//lambda格式查询数据库中的price属性值小于10的数据
        List<Book> bookList2=bookDao.selectList(wrapper2);
        System.out.println(bookList2);
        System.out.println("--------------");
   }

方式三:使用LambdaQueryWrapper进行查询,可以省略almbda().xxx,推荐

void testGetAll(){
        //方式三:lambda格式按条件查询
        LambdaQueryWrapper<Book> lambdaQueryWrapper=new LambdaQueryWrapper<Book>();
        //9-50之间
        lambdaQueryWrapper.lt(Book::getPrice,50).ge(Book::getPrice,9);//lambda格式查询数据库中的price属性值小于50且大于9的数据
        List<Book> bookList3=bookDao.selectList(lambdaQueryWrapper);
        System.out.println(bookList3);
        //小于9或大于50
        lambdaQueryWrapper.lt(Book::getPrice,9).or().ge(Book::getPrice,50);
        List<Book> bookList4=bookDao.selectList(lambdaQueryWrapper);
        System.out.println(bookList4);
   }

我的表数据如下:
在这里插入图片描述

--------------
下面介绍null判定
首先建一个Book2类继承Book类,Book2再添加price2属性用于记录price的最大值

public class Book2  extends Book{
    private Integer price2;//用于设置price的上限

    public Integer getPrice2() {
        return price2;
    }

    public void setPrice2(Integer price2) {
        this.price2 = price2;
    }
}

2.修改方式三,添加null判定

void testGetAll(){
        //方式三:lambda格式按条件查询
        Book2 book2=new Book2();
        book2.setPrice(5);//price最小值
        book2.setPrice2(35);//price最大值

        LambdaQueryWrapper<Book> lambdaQueryWrapper=new LambdaQueryWrapper<Book>();
        //9-50之间
        //当price的最大值不为空时,查询price小于最大值的数据
        lambdaQueryWrapper.lt(null!=book2.getPrice2(),Book::getPrice,book2.getPrice2())
        当price的最小值不为空时,查询price大于最小值的数据
                          .ge(null!=book2.getPrice(),Book::getPrice,book2.getPrice());
        List<Book> bookList3=bookDao.selectList(lambdaQueryWrapper);
        System.out.println(bookList3);


        //小于9或大于50
//        lambdaQueryWrapper.lt(Book::getPrice,9).or().ge(Book::getPrice,50);
//        List<Book> bookList4=bookDao.selectList(wrapper);
//        System.out.println(bookList4);
   }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MyBatisPlus条件查询的三种格式于null判定 的相关文章

  • Java中ArrayList的交集和并集

    有什么方法可以做到这一点吗 我正在寻找 但没有找到 另一个问题 我需要这些方法 以便我可以过滤文件 有些是AND过滤器 有些是OR过滤器 就像集合论中的那样 所以我需要根据所有文件和保存这些文件的联合 相交 ArrayList 进行过滤 我
  • 按键时关闭 ModalWindow

    我希望能够在用户按下某个键 在我的例子中是 ESC 时关闭 ModalWindow 我有一个用于按键的 Javascript 侦听器 它调用取消按钮 ID 的单击事件 jQuery modalWindowInfo closeButtonId
  • 如何让 BlazeDS 忽略属性?

    我有一个 java 类 它有一个带有 getter 和 setter 的字段 以及第二对 getter 和 setter 它们以另一种方式访问 该字段 public class NullAbleId private static final
  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • 不同帐户上的 Spring Boot、JmsListener 和 SQS 队列

    我正在尝试开发一个 Spring Boot 1 5 应用程序 该应用程序需要侦听来自两个不同 AWS 帐户的 SQS 队列 是否可以使用 JmsListener 注解创建监听器 我已检查权限是否正确 我可以使用 getQueueUrl 获取
  • Mockito:如何通过模拟测试我的服务?

    我是模拟测试新手 我想测试我的服务方法CorrectionService correctPerson Long personId 实现尚未编写 但这就是它将执行的操作 CorrectionService将调用一个方法AddressDAO这将
  • 为什么 JTables 使 TableModel 在呈现时不可序列化?

    所以最近我正在开发一个工具 供我们配置某些应用程序 它不需要是什么真正令人敬畏的东西 只是一个具有一些 SQL 脚本生成功能并创建几个 XML 文件的基本工具 在此期间 我使用自己的 AbstractTableModel 实现创建了一系列
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • 如何更改javaFX中按钮的图像?

    我正在使用javaFX 我制作了一个按钮并为此设置了图像 代码是 Image playI new Image file c Users Farhad Desktop icons play2 jpg ImageView iv1 new Ima
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • Java 集合的并集或交集

    建立并集或交集的最简单方法是什么Set在 Java 中 我见过这个简单问题的一些奇怪的解决方案 例如手动迭代这两个集合 最简单的单行解决方案是这样的 set1 addAll set2 Union set1 retainAll set2 In
  • 将 MOXy 设置为 JAXB 提供程序,而在同一包中没有属性文件

    我正在尝试使用 MOXy 作为我的 JAXB 提供程序 以便将内容编组 解组到 XML JSON 中 我创建了 jaxb properties 文件 内容如下 javax xml bind context factory org eclip
  • 像 Java 这样的静态类型语言中动态方法解析背后的原因是什么

    我对 Java 中引用变量的动态 静态类型和动态方法解析的概念有点困惑 考虑 public class Types Override public boolean equals Object obj System out println i
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • 如何使用 jUnit 将测试用例添加到套件中?

    我有 2 个测试类 都扩展了TestCase 每个类都包含一堆针对我的程序运行的单独测试 如何将这两个类 以及它们拥有的所有测试 作为同一套件的一部分执行 我正在使用 jUnit 4 8 在 jUnit4 中你有这样的东西 RunWith
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp

随机推荐

  • C++OpenCV(1):安装与配置

    文章首发于我的个人博客 欢迎大佬们来逛逛 OpenCV项目地址及源代码 点击这里 文章目录 下载与配置项目环境 最简单的opencv项目 下载与配置项目环境 点击下方连接进入官网下载 Releases 选择合适的版本 直接下载即可 下载完成
  • Kubernetes 网络排错“狂飙”级指南,运维请收好

    本文将引入一个思路 在 Kubernetes 集群发生网络异常时如何排查 文章将引入 Kubernetes 集群中网络排查的思路 包含网络异常模型 常用工具 并且提出一些案例以供学习 1 Pod 网络异常 网络异常大概分为如下几类 网络不可
  • C、C++中出现nan、inf原因

    在数据处理输入输出时 极有可能遇到数据读入空值 极大 极小 运算中分母为0或0 0 对0取对数等操作 这将产生nan或inf的产生 这篇博文旨在分析C C 产生nan和inf的操作及判断是否有nan或inf产生 NAN的产生原因 nan n
  • zigbee入网过程分析(mac层分析),附Ubiqua抓包

    普通开关 插座 门锁设备入网流程一般到basic就结束了 灯到identity结束 低功耗传感器设备一般到IAS zone结束 设备入网流程如下 1 beacon request 由endpoint发出 请求入网 设备一般会全信道扫描找网
  • binlog数据恢复

    不管你什么架构 一切都是为数据服务的 数据是一个企业最核心的价值 不过出现问题的话 数据一旦被删除 每过一秒 都将对企业造成巨大的损失 最近 还真的发生了一起删库跑路事件 微盟7 24小时紧急恢复数据 商家赔付1 5亿 一 binlog2s
  • View那些事儿(2) -- 理解MeasureSpec

    View的绘制的三大流程的第一步就是Measure 测量 想要理解View的测量过程 必须要先理解MeasureSpec 从字面上看 MeasureSpec就是 测量规格 的意思 其实它在一定程度上决定了View的测量过程 具体来讲它包含了
  • C++_数据存储_药名整理(代码+注释)

    题目描述 输入输出格式 样例 输入样例 4 AspiRin cisapride 2 PENICILLIN Cefradine 6 输出样例 Aspirin Cisapride 2 penicillin Cefradine 6 代码 注释 a
  • 西门子PLC S7-200系列有哪些基本硬件及优点?

    西门子SIMATIC系列PLC 诞生于1958年 经历了C3 S3 S5 S7系列 已成为应用非常广泛的可编程控制器 西门子S7 200系列PLC的基本硬件组成 SIMATIC S7 200的应用领域从更换继电器和接触器一直扩展到在单机 网
  • 【MySQL】复合查询

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 基本查询 1 查询工资高于500或岗位为MANAGER
  • 智明星通 CEO 唐彬森:创业过程中的几笔学费

    编者按 本文来自创新工场 微信号 chuangxin2009 创业公开课 本期课程是由从海外市场起家的唐彬森老师分享 创业过程中的几笔学费 在移动互联网时代背景下 产品为王 只有真正了解用户 才能发现背后的规律 而互联网的基本规律是幂定律
  • NoSQL数据库的介绍、NoSQL的产品、NoSQL数据库的分类等;

    目录 1 1 什么是NoSQL 1 2 为什么使用NoSQL 1 3 RDBMS 传统关系型数据库 vs NoSQL 特点对比 1 4 NoSQL 简史 1 5 NoSQL 产品 1 6 NoSQL 数据库分类 1 7 目前谁在使用NoSQ
  • 静态链表的基本操作实现

    一 实验目的 巩固线性表的数据结构的存储方法和相关操作 学会针对具体应用 使用线性表的相关知识来解决具体问题 二 实验内容 建立一个由n个学生成绩的顺序表 n 的大小 由自己确 定 每一个学生的成绩信息由自己确定 实现数据的对表进行插入 删
  • python中对配置环境的理解

    在咱们学习python前 老师和书本就已经教我们应该如何配置python环境 1 安装python 安装好后 找到python exe 打开其属性 复制他的路径 2 打开控制面板中的所有控制面板项后 选择系统 点击左边的高级系统设置 在高级
  • 进程管理&&内存管理

    操作系统详述 目录 操作系统详述 一 进程管理 这是重点 1 什么是进程管理 2 如何做好进程调度 1 需要把进程这个抽象的概念用数据表示处理 抽象成一个对象 这就是面向对象思想 2 需要对进程做分区 3 现在手上有等待分配CPU的所有进程
  • Linux下使用OpenCv驱动RGB多款彩色摄像头

    最简单的驱动 cout lt lt Built with OpenCV lt lt CV VERSION lt lt endl VideoCapture capture 0 打开摄像头 if capture isOpened 判断是否打开成
  • 多模态大模型系列论文(ALBEF、BLIP、BLIP-2)

    1 ALBEF ALign the image and text BEfore Fusing 1 1 论文与代码链接 https arxiv org abs 2107 07651 GitHub salesforce ALBEF Code f
  • Linux系统项目测试环境部署步骤及操作流程

    jdk安装 在linux上安装JDK 版本位要与linux版本一致 可以通过winscp工具进行安装 把jdk包下载到windows系统上 通过winscp把jdk包直接拖到linux系统的目录中去 具体linux命令步骤 1 tar zx
  • replaceAll遇到特殊字符无法替换问题的坑

    问题 当出现 或者 或者 符等 会导致 无法替换 在一定程度上 这个也算是 一个坑吧 问题原因 replaceAll支持正则 出现正则的符号 就会被当作是正则 从而无法正常替换 解决办法 网上有一个解决方案 是采用 Matcher quot
  • JetBrains IDEA 的安装与设置

    为什么80 的码农都做不了架构师 gt gt gt JetBrains Toolbox 下载 安装 配置 JetBrains IDEA 下载 安装 配置 JetBrains Toolbox 下载 安装 官方下载地址 https downlo
  • MyBatisPlus条件查询的三种格式于null判定

    DQL编程控制 条件查询 MyBatisPlus将书写复杂的SQL查询条件进行了封装 使用编程的形式完成查询条件的组合 方式一 使用QueryWrapper查询数据 lt是小于的意思 price是数据表的字段名称 price容易写错 不推荐