【热门框架】Mybatis-Plus条件查询的三种格式

2023-10-27

Mybatis-Plus 提供了三种常用的条件查询方式,分别是 Wrapper、QueryWrapper、LambdaQueryWrapper。

  1. Wrapper

Wrapper 是一个接口,提供了若干个构造方法,可以用来构建 where 条件,例如:

Wrapper<User> wrapper = new Wrapper<User>() {
    @Override
    public String getSqlSegment() {
        return "where age > 18 and email like '%@163.com'";
    }
};
List<User> userList = userMapper.selectList(wrapper);

这里使用匿名内部类创建了一个 Wrapper 对象,然后实现了 getSqlSegment 方法来返回 where 条件语句。

  1. QueryWrapper

QueryWrapper 是 Wrapper 的子类,提供了更加方便的条件构造方法,例如:

QueryWrapper<User> queryWrapper = new QueryWrapper<User>()
    .gt("age", 18)
    .likeRight("email", "@163.com");
List<User> userList = userMapper.selectList(queryWrapper);

这里使用 QueryWrapper 的 gt 方法来添加 age 大于 18 的条件,使用 likeRight 方法添加 email 以 “@163.com” 结尾的条件。

  1. LambdaQueryWrapper

LambdaQueryWrapper 也是 QueryWrapper 的子类,可以使用 lambda 表达式来构建条件,例如:

LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<User>()
    .gt(User::getAge, 18)
    .likeRight(User::getEmail, "@163.com");
List<User> userList = userMapper.selectList(lambdaQueryWrapper);

这里使用 lambda 表达式分别表示 age 大于 18 和 email 以 “@163.com” 结尾的条件。

以上三种方式都可以用于 select、delete 和 update 操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【热门框架】Mybatis-Plus条件查询的三种格式 的相关文章

  • Java 中类似 HashMap 的可排序数据结构?

    Java 中是否有某种类似于 HashMap 的数据结构 可以按键或值排序 在 PHP 中 您可以拥有可排序的关联数组 Java中有这样的东西吗 HashMaps 几乎按照定义是未排序的 一个好的哈希函数会产生看似随机的密钥分布 如果你想使
  • 我们可以在java中放弃已经签名的jar吗?

    I ve a jar文件具有旧签名 并希望使用新签名重新签名 是否可以 如果可能的话 怎么做 如果签名不是您拥有的 您需要先解压 jar 像这样 假设是unix 否则翻译成dos jar xvf JarName jar rm rf META
  • SWT:如何进行高质量图像调整大小

    我的应用程序需要调整 ImageData 的大小 不幸的是 我还没有通过 GC 开启抗锯齿和高插值 或 ImageData scaledTo 获得我想要的结果 生成的图像质量太低 无法接受 进行高质量 ImageData 调整大小的最佳方法
  • 单击链接时如何将另一个 JSP 页面注入到

    我在一个JSP页面中有两个不同的部分 其中一个包含链接菜单 单击时 div2 id content 会相应加载不同的页面 我正在做类似的事情 div ul class navbar li a href Login jsp Login a l
  • 克隆 dom.Document 对象

    我的目的是将xml文件读入Dom对象 编辑dom对象 其中涉及删除一些节点 完成此操作后 我希望将 Dom 恢复到其原始状态 而不实际解析 XML 文件 无论如何 我可以克隆第一次解析 xml 文件后获得的 dom 对象吗 这个想法是避免一
  • android.os.FileUriExposedException 在 Oreo 中引起(仅!)[重复]

    这个问题在这里已经有答案了 从 Google Play Console 中 我可以看到此异常仅发生在 Android 8 0 的设备上 android os FileUriExposedException at android os Str
  • 从 java 类生成 xsd 的实用程序

    我想为以下类生成 xsd public class Node private String value private List
  • 枚举内的枚举

    这不是我被卡住的问题 而是我正在寻找一种简洁的方式来编写我的代码 本质上 我正在编写一个事件驱动的应用程序 用户触发事件 事件被发送到适当的对象 然后对象处理事件 现在我正在编写偶数处理程序方法 我希望使用 switch 语句来确定如何处理
  • 如何在不使用反射的情况下查看对象是否是数组?

    在Java中如何在不使用反射的情况下查看对象是否是数组 如何在不使用反射的情况下迭代所有项目 我使用 Google GWT 所以不允许我使用反射 我很想在不使用反射的情况下实现以下方法 private boolean isArray fin
  • 最终类中的静态函数是否隐式最终?

    我的问题基本上与this https stackoverflow com q 8766476 3882565一 但这是否也适用于static功能 我想了解 编译器是否处理所有static函数在一个final类为final 是否添加final
  • 在仔细锁定但不受信任的代码上使用 Thread.stop()

    我知道Thread stop 已被弃用 并且有充分的理由 它通常不安全 但这并不意味着它是never安全 据我所知 在我想要使用它的上下文中它是安全的 而且 据我所知 我别无选择 上下文是一个两人策略游戏的第三方插件 以国际象棋为例 第三方
  • 如何使 JFileChooser 仅显示具有某些特定名称 Java 的文件夹

    有什么方法可以让 JFileChooser 加载时仅显示名称为 Hello 的文件夹 这是我的代码 它显示所有文件夹以及扩展名为 py 和 java 的文件 我想添加文件夹名称限制 FileNameExtensionFilter filte
  • jsch - 发送特殊键(CTRL-C、CTRL-D 等)

    我需要向远程终端发送特殊密钥 如何使用 JSCH 做到这一点 Thanks Walter 尝试发送两个字节 0x03 0x04 Check ASCII 表 http www bbdsoft com ascii html了解更多
  • 如何在 iText 7 中创建页面大小不等的文档

    如何在 iText 7 中创建页面大小不等的文档 iText7 可以吗 在iText5中 我使用document setPageSize and document newPage 如果您通过高级 API 添加内容 Document add
  • Maven编译错误:包不存在

    我正在尝试向现有企业项目添加 Maven 支持 这是一个多模块项目 前 2 个模块编译和打包没有问题 但我面临编译错误 我尝试在多个模块中使用相同的依赖项 我的结构是 gt parent gt pom xml gt module 1 gt
  • 在Java中,为什么某些变量首先需要初始化,而其他变量只需要声明?

    我试图更深入地理解我是否遗漏了一些关于 Java 何时需要变量初始化与简单声明的理解 在以下代码中 不需要为变量 row 赋值即可编译和运行 但变量 column 则需要赋值 注意 该程序没有任何用处 它已被修剪为仅显示此问题所需的内容 以
  • 如何强制 Spark 执行代码?

    我如何强制 Spark 执行对 map 的调用 即使它认为由于其惰性求值而不需要执行它 我试过把cache 与地图调用 但这仍然没有解决问题 我的地图方法实际上将结果上传到 HDFS 所以 它并非无用 但 Spark 认为它是无用的 简短回
  • 我的代码线程不安全吗?

    我编写了代码来理解 CyclicBarrier 我的应用程序模拟选举 每轮选出得票少的候选人 该候选人从竞争中淘汰以获得胜利 source class ElectoralCommission public volatile boolean
  • 如何为用户的活动设置计时器?

    如果用户在 5 小时内停止工作 我需要执行特定的方法 假设用户已登录 但他在 5 小时内没有向数据库的特定表添加任何记录 任何时候用户将记录添加到指定的表中 该特定用户的计时器都应该重置 否则它将继续运行 如果达到 5 小时 应用程序应显示
  • eclipse.ui.menus 的名称过滤器

    我有一个菜单贡献 通过实现org eclipse ui menus扩展点 我想仅为特定文件扩展名 例如 pld 提供此菜单贡献 但我不知道如何使用 visibleWhen 来做到这一点 有任何想法吗 更新 到目前为止我的扩展点

随机推荐

  • 单片机学习笔记1:单片机简介

    单片机 1 什么是单片机 单片机 Single Chip Microcomputer 是一种集成电路芯片 是采用超大规模集成电路技术把具有数据处理能力的中央处理器 CPU 存储器 RAM ROM 中断系统 I O接口电路 定时器 计数器等功
  • 图像分类(1),数据预处理

    本文介绍如何使用pytorh利用预训练模型进行图像分类 主要参考Transfer Learning Tutorial和 具体代码可以参考Image classification 下载代码文件 git clone https github c
  • Web自动化测试,怎样参数化?

    目录 1 读取 csv 文件 2 数据ddt参数化 2 1实施步骤 2 2代码举例 unittest框架 3 PO 模式 3 1介绍 3 2非po模式和po模式对比 3 3Po分层及彼此关系 3 4代码举例 非PO模式 3 5代码举例 PO
  • 计算机开机后发现不了硬盘 首先应该检查,电脑每次开机都检测硬盘,怎么关闭这项功能?...

    如何关闭硬盘开机检测 开机自检时可以通过以下方法关闭硬盘的智能状态 不检测是无法实现的 hard disk state at all 1 Boot into bios 通常按f1 f2 f9 del 键进入bios 2 在boot或adva
  • torch一些常见的环境问题

    前言 我们在使用torch的时候经常会遇到一些常见的错误 这里单独开一篇博客记录一下 以便日后翻阅 本文会不断更新 torch1 13 有时候pip 下某个包的时候经常会自动安装nvidia cublas cu11 11 10 3 66 于
  • const int *p和int * const p的区别(常量指针与指向常量的指针)

    对于指针和常量 有以下三种形式都是正确的 const char myPtr char A 指向常量的指针 char const myPtr char A 常量的指针 const char const myPtr char A 指向常量的常量
  • Kali使用Netdiscover探测局域网中存活主机

    1 netdiscover介绍 Netdiscover 是一个主动 被动的ARP 侦查工具 使用Netdiscover工具可以在网络上扫描IP地址 检查在线主机或搜索为它们发送的ARP请求 2 主动模式 主动模式顾名思义就是主动的探测发现网
  • 使用键值表实现通用流水号

    很多MIS系统 都需要用到流水号 一般的简单的流水号 由标识 日期 自增序号来组成 但如果考虑通用的话 就稍微复杂点儿的 需要考虑自定义日期格式 自增序号归1 自增序号溢出处理 前缀 中缀 后缀 并发访问 批量获取等 本文抽象出一个通用的生
  • Spring学习(三)IOC控制反转与DI依赖注入

    IOC Inversion of Control 控制反转 是spring的核心 贯穿始终 所谓IOC 对于spring框架来说 就是由spring来负责控制对象的生命周期和对象间的关系 传统开发模式 对象之间互相依赖 IOC开发模式 IO
  • eclipse 项目提示"Project facet Java version 1.8 is not supported"

    今天使用eclipse 工具 导入maven 项目 编译项目的时候提示 Project facet Java version 1 8 is not supported 第一步 排查eclipse 项目的编译版本 项目 properties
  • Angular-官方文档学习-1

    Angular 简介 AngularJS 是一个 JavaScript 框架 它可通过 AngularJS 通过 指令 扩展了 HTML 且通过 表达式 绑定数据到 HTML AngularJS 扩展了 HTML AngularJS 通过
  • 选择文件窗口,获取选择文件地址

    微信公众号原文 系统 Windows 7 软件 Excel 2010 学习路径图 针对之前的学习路径图 会针对的写一些文章 我们在做信息处理的时候 可能会涉及到多个其它文件 有的时候需要根据需求选择所需文件进行处理 今天我们就讲讲如何使用V
  • 软件测试的基本概念

    目录 一 什么是需求 二 什么是测试用例 三 什么是BUG 四 开发模型和测试模型 1 软件开发生命周期 2 软件开发的五大模型 2 1 瀑布模型 2 2螺旋模型 2 3增量模型 迭代模型 2 4 敏捷模型 3 软件测试的两大模型 3 1
  • 一个登录案例学会 Pinia

    Pinia 号称下一代的 Vuex 经过初步体验 发现相比于 Vuex Pinia 确实有了很大进步 最明显的就是删减了复杂的概念 简化了数据流转的过程 现在只剩下了 store state getters actions 这四个核心概念
  • 小白学习python——numpy

    零 初识numpy 1 numPy Numerical Python 即数值Python包 是Python进行科学计算的一个基础包 所以是一个掌握其他Scipy库中模块的基础模块 一定需要先掌握该包的主要使用方式 官网 http www n
  • 猿创征文

    内存管理实现单链表的插入和删除 1 收获 2 什么是单链表 3 节点的创建 4 主函数的实现 5 子函数的实现 5 1 AollocNode的实现 5 2 HeadInsertNode的实现 5 3 ShowNode的实现 5 4 Head
  • KB2871997补丁绕过

    KB2871997补丁绕过 微软为了防止用户的明文密码在内存中泄露 发布了KB2871997补丁 关闭了Wdigest功能 Windows Server2012及以上版本默认关闭Wdigest 使攻击者无法从内存中获取明文密码 Window
  • 24. 两两交换链表中的节点

    给你一个链表 两两交换其中相邻的节点 并返回交换后链表的头节点 你必须在不修改节点内部的值的情况下完成本题 即 只能进行节点交换 输入 head 1 2 3 4 输出 2 1 4 3 示例 2 输入 head 输出 示例 3 输入 head
  • php 验证只能输入姓名,php 检查输入用户名是否符合规定示例

    这篇文章主要为大家详细介绍了php 检查输入用户名是否符合规定示例 具有一定的参考价值 可以用来参考一下 对php检查输入的用户名是否符合规定感兴趣的小伙伴 下面一起跟随512笔记的小编两巴掌来看看吧 php检查输入的用户名是否符合规定 p
  • 【热门框架】Mybatis-Plus条件查询的三种格式

    Mybatis Plus 提供了三种常用的条件查询方式 分别是 Wrapper QueryWrapper LambdaQueryWrapper Wrapper Wrapper 是一个接口 提供了若干个构造方法 可以用来构建 where 条件