当前位置: 首页 > news >正文

【mybatis】mybatis-plus中Wrapper(条件构造器)简介_常用方法及说明

1、简介

  • MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
  • MyBatis-Plus 提供了强大的条件构造器(Wrapper),用于构建复杂的 SQL 查询条件,使得我们不必手写繁琐的 SQL 语句。
  • 这些方法主要定义在 com.baomidou.mybatisplus.core.conditions.query.QueryWrappercom.baomidou.mybatisplus.core.conditions.update.UpdateWrapper 等类中。

2、常用方法

2.1QueryWrapper(查询条件构造器)

1. 基本条件构造

  • eq(String column, Object val): 等于 =。用于添加等于条件。
  • ne(String column, Object val): 不等于 <>。用于添加不等于条件。
  • gt(String column, Object val): 大于 >。用于添加大于条件。
  • ge(String column, Object val): 大于等于 >=。用于添加大于等于条件。
  • lt(String column, Object val): 小于 <。用于添加小于条件。
  • le(String column, Object val): 小于等于 <=。用于添加小于等于条件。

2. 范围条件

  • between(String column, Object val1, Object val2): BETWEEN 值1 AND 值2。用于添加字段值在两个值之间的条件。
  • notBetween(String column, Object val1, Object val2): NOT BETWEEN 值1 AND 值2。用于添加字段值不在两个值之间的条件。

3. 模糊查询

  • like(String column, Object val): LIKE '%值%'。用于添加字段值包含某个子串的条件。
  • notLike(String column, Object val): NOT LIKE '%值%'。用于添加字段值不包含某个子串的条件。
  • likeLeft(String column, Object val): LIKE '值%'。用于添加字段值以某个子串开头的条件。
  • likeRight(String column, Object val): LIKE '%值'。用于添加字段值以某个子串结尾的条件。

4. 集合条件

  • in(String column, Collection<?> value): IN (value.get(0), value.get(1), ...)。用于添加字段值在指定集合中的条件。
  • notIn(String column, Collection<?> value): NOT IN (value.get(0), value.get(1), ...)。用于添加字段值不在指定集合中的条件。

5. 空值判断

  • isNull(String column): 字段 IS NULL。用于添加字段值为 NULL 的条件。
  • isNotNull(String column): 字段 IS NOT NULL。用于添加字段值不为 NULL 的条件。

6. 排序

  • orderByAsc(String... columns): ORDER BY 字段, ... ASC。用于添加升序排序条件。
  • orderByDesc(String... columns): ORDER BY 字段, ... DESC。用于添加降序排序条件。
  • orderBy(boolean asc, String... columns): 根据 asc 参数决定升序或降序,然后添加排序条件。

7. 分组与聚合

  • groupBy(String... columns): GROUP BY 字段,...。用于添加分组条件。
  • having(String sqlHaving, Object... params): HAVING (sqlHaving)。用于添加 HAVING 条件,支持 SQL 片段和参数。

8. 逻辑控制

  • or(): 调用此方法后,紧接着的条件会与前一个条件构成 OR 关系。注意,or() 方法仅用于逻辑控制,不会立即生成 SQL 片段,而是改变后续条件与前一个条件的逻辑关系。
  • nested(Consumer<QueryWrapper<T>> consumer): 提供一个嵌套的 QueryWrapper 来构造更复杂的条件。嵌套的条件会被视为一个整体,与其他条件通过 AND 连接(除非在嵌套内部使用了 or())。

9. 其他

  • last(String sqlLast): 将 sqlLast 拼接到 SQL 的最后,用于覆盖或追加原 SQL 条件。

2.2UpdateWrapper(更新条件构造器)

1. 设置更新条件

  • eq(String column, Object val): 等于 =。用于设置字段等于某个值的更新条件。
  • ne(String column, Object val): 不等于 <>。用于设置字段不等于某个值的更新条件。
  • gt(String column, Object val): 大于 >。用于设置字段大于某个值的更新条件。
  • ge(String column, Object val): 大于等于 >=。用于设置字段大于等于某个值的更新条件。
  • lt(String column, Object val): 小于 <。用于设置字段小于某个值的更新条件。
  • le(String column, Object val): 小于等于 <=。用于设置字段小于等于某个值的更新条件。

2. 添加更新字段

  • set(String column, Object val): 设置要更新的字段及其值。可以多次调用以设置多个字段的更新值。
  • set(Map<String, Object> columnMap): 批量设置要更新的字段及其值。通过传入一个包含字段名和字段值的 Map 对象来一次性设置多个字段的更新值。

3. 逻辑控制

  • or(): 调用此方法后,紧接着的条件会与前一个条件构成 OR 关系。

相关文章:

【mybatis】mybatis-plus中Wrapper(条件构造器)简介_常用方法及说明

1、简介 MyBatis-Plus 是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。MyBatis-Plus 提供了强大的条件构造器&#xff08;Wrapper&#xff09;&#xff0c;用于构建复杂的 SQL 查询条件&#xff0c;使得我们…...

IT专业入门:高考假期预习指南

七月&#xff0c;是一个充满转折与希望的月份。随着各省高考分数的揭晓&#xff0c;许多有志于踏入IT领域的少年们正站在新旅程的起点上。高考的完结并不意味着学习的结束&#xff0c;相反&#xff0c;它是一个全新的开始&#xff0c;一个探索未知世界的绝佳时机。作为IT领域的…...

推动高效能:东芝TB67H301FTG全桥直流电机驱动IC

在如今高度自动化的时代&#xff0c;电子产品的性能和效率成为了工程师们关注的焦点。东芝的TB67H301FTG全桥直流电机驱动IC应运而生&#xff0c;以其卓越的技术和可靠性&#xff0c;成为众多应用的理想选择。无论是在机器人、家用电器、工业自动化&#xff0c;还是在其他需要精…...

Matplotlib 中文显示

Matplotlib 中文显示 Matplotlib 是一个强大的 Python 绘图库,广泛应用于数据可视化领域。然而,对于中文用户来说,Matplotlib 的默认设置可能不支持中文显示,这给使用带来了一定的不便。本文将详细介绍如何在 Matplotlib 中正确显示中文,包括中文字符的字体选择、字体大小…...

【LeetCode:841. 钥匙和房间 + DFS】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…...

1)并发事务的问题

1) 并发事务的问题&#xff1f; &#xff08;1&#xff09;读“脏”数据 事务T1修改数据后T2读取了该数据&#xff0c;但是T1撤消了修改&#xff0c; 事务T1进行了回滚&#xff0c;导致事务T2读取的数据与数据库中的数据不一致。&#xff08;2&#xff09;丢失修改 两个事务…...

Python缓存利器:cachetools库详解

Python缓存利器:cachetools库详解 1. cachetools简介2. 安装3. 基本概念3.1 LRU Cache (Least Recently Used)3.2 TTL Cache (Time-To-Live)3.3 LFU Cache (Least Frequently Used) 4. 使用示例4.1 使用LRU Cache4.2 使用TTL Cache4.3 使用LFU Cache4.4 缓存装饰器 5. 进阶用法…...

【Python实战因果推断】20_线性回归的不合理效果10

目录 Neutral Controls Noise Inducing Control Feature Selection: A Bias-Variance Trade-Off Neutral Controls 现在&#xff0c;您可能已经对回归如何调整混杂变量有了一定的了解。如果您想知道干预 T 对 Y 的影响&#xff0c;同时调整混杂变量 X&#xff0c;您所要做的…...

在Ubuntu 16.04上安装和配置ownCloud的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 ownCloud 是一个文件共享服务器&#xff0c;允许您将个人内容&#xff08;如文档和图片&#xff09;存储在一个类似 Dropbox 的集…...

Java | Leetcode Java题解之第213题打家劫舍II

题目&#xff1a; 题解&#xff1a; class Solution {public int rob(int[] nums) {int length nums.length;if (length 1) {return nums[0];} else if (length 2) {return Math.max(nums[0], nums[1]);}return Math.max(robRange(nums, 0, length - 2), robRange(nums, 1,…...

使用 ESP32 接收 MAX4466 模拟麦克风模块的数据,通过 DAC 转码成 PCM 格式,并通过 MQTT 发送给另一台设备,可以通过以下步骤实现。

硬件准备 两个 ESP32 开发板MAX4466 模拟麦克风模块MQTT 服务器&#xff08;例如 Mosquitto&#xff09; 接线 MAX4466 模块输出&#xff08;AO&#xff09; -> ESP32 ADC 引脚&#xff08;如 GPIO 34&#xff09; 软件准备 音频采集DAC 转码MQTT 发送和接收 代码实现…...

SQL二次注入原理分析

二次注入在测试的时候比较少见&#xff0c;或者说很难被测出来&#xff0c;因为测的时候首先要去找注入的位置&#xff0c;其次是去判断第一次执行的SQL语句&#xff0c;然后还要去判断第二次进行调用的 SQL 语句。而关键问题就出在第二次的调用上面。 下面以一个常用过滤方法…...

在线签约如何选择?2024年10款顶级app大比拼

支持电子合同签约的10大app&#xff1a;e签宝、上上签、DocuSign、契约锁、Adobe Sign、法大大、SignNow、安心签、HelloSign、PandaDoc。 无论是企业之间的交易还是个人服务合同&#xff0c;线上电子合同签约提供了一种便捷、高效且安全的方式来处理法律文档。本文将介绍几款优…...

gcc: warning: -Wunused-function;加了选项,为什么就不报警告呢?

文章目录 问题clang的编译而使用gcc是就不报问题分析原因如果是非static的函数问题 下面这个代码段,其中这个函数hton_ext_2byte,在整个程序里就没有使用。 static inline uint16_t hton_ext_2byte(uint8_t **p) {uint16_t v;******return v;...

系统提示我未定义与 ‘double‘ 类型的输入参数相对应的函数 ‘finverse‘,如何解决?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…...

【电路笔记】-B类放大器

B类放大器 文章目录 B类放大器1、概述2、B类放大器介绍3、推挽式配置4、限制交叉失真5、B类放大器效率6、总结1、概述 我们在之前的文章中已经知道,A 类放大器的特点是导通角为 360,理论最大效率为 50%。 在本文中,我们将详细介绍另一类放大器,称为B类放大器,它是为解决A…...

Ubuntu 22.04 安装中文字体

笔者在用OpenCV4.9处理图片加水印时&#xff0c;中文乱码。原来是Ubuntu 22.04发行版缺少中文字体支持&#xff0c;因此&#xff0c;笔者就找资料安装了需要的中文字体&#xff0c;特此记录&#xff0c;以备后查。 1、打开终端&#xff1a; 2、更新软件包列表&#xff1a; su…...

「树莓派入门」树莓派进阶04-直流电机控制与PWM应用

直流电机控制是树莓派硬件项目中的一项重要技能。通过PWM技术,你可以实现对电机速度的精确控制。在实验过程中,请注意电机的电源匹配和GPIO引脚的保护。 一、直流电机基本原理 直流电机通过直流电源供电,其工作原理基于洛伦兹力定律,即电流通过线圈时,会在磁场中受到力的…...

利用数据集,用机器学习模型对股市预测,聊聊看!

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…...

015-GeoGebra基础篇-定点旋转物体、动态显示数值并显示运动轨迹

这可能是我能想到的最大概率可以被你搜索到的标题了&#xff0c;容我先喘口气~ 目录 一、成品展示二、涉及内容三、做图步骤&#xff08;1&#xff09;绘制三角形t&#xff08;2&#xff09;建立定点D&#xff08;3&#xff09;制作角度滑动条&#xff08;4&#xff09;图形绕点…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

Unity中的transform.up

2025年6月8日&#xff0c;周日下午 在Unity中&#xff0c;transform.up是Transform组件的一个属性&#xff0c;表示游戏对象在世界空间中的“上”方向&#xff08;Y轴正方向&#xff09;&#xff0c;且会随对象旋转动态变化。以下是关键点解析&#xff1a; 基本定义 transfor…...