【mybatis】mybatis-plus中Wrapper(条件构造器)简介_常用方法及说明
1、简介
- MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
- MyBatis-Plus 提供了强大的条件构造器(Wrapper),用于构建复杂的 SQL 查询条件,使得我们不必手写繁琐的 SQL 语句。
- 这些方法主要定义在
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper和com.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 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis-Plus 提供了强大的条件构造器(Wrapper),用于构建复杂的 SQL 查询条件,使得我们…...
IT专业入门:高考假期预习指南
七月,是一个充满转折与希望的月份。随着各省高考分数的揭晓,许多有志于踏入IT领域的少年们正站在新旅程的起点上。高考的完结并不意味着学习的结束,相反,它是一个全新的开始,一个探索未知世界的绝佳时机。作为IT领域的…...
推动高效能:东芝TB67H301FTG全桥直流电机驱动IC
在如今高度自动化的时代,电子产品的性能和效率成为了工程师们关注的焦点。东芝的TB67H301FTG全桥直流电机驱动IC应运而生,以其卓越的技术和可靠性,成为众多应用的理想选择。无论是在机器人、家用电器、工业自动化,还是在其他需要精…...
Matplotlib 中文显示
Matplotlib 中文显示 Matplotlib 是一个强大的 Python 绘图库,广泛应用于数据可视化领域。然而,对于中文用户来说,Matplotlib 的默认设置可能不支持中文显示,这给使用带来了一定的不便。本文将详细介绍如何在 Matplotlib 中正确显示中文,包括中文字符的字体选择、字体大小…...
【LeetCode:841. 钥匙和房间 + DFS】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...
1)并发事务的问题
1) 并发事务的问题? (1)读“脏”数据 事务T1修改数据后T2读取了该数据,但是T1撤消了修改, 事务T1进行了回滚,导致事务T2读取的数据与数据库中的数据不一致。(2)丢失修改 两个事务…...
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 现在,您可能已经对回归如何调整混杂变量有了一定的了解。如果您想知道干预 T 对 Y 的影响,同时调整混杂变量 X,您所要做的…...
在Ubuntu 16.04上安装和配置ownCloud的方法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 ownCloud 是一个文件共享服务器,允许您将个人内容(如文档和图片)存储在一个类似 Dropbox 的集…...
Java | Leetcode Java题解之第213题打家劫舍II
题目: 题解: 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 服务器(例如 Mosquitto) 接线 MAX4466 模块输出(AO) -> ESP32 ADC 引脚(如 GPIO 34) 软件准备 音频采集DAC 转码MQTT 发送和接收 代码实现…...
SQL二次注入原理分析
二次注入在测试的时候比较少见,或者说很难被测出来,因为测的时候首先要去找注入的位置,其次是去判断第一次执行的SQL语句,然后还要去判断第二次进行调用的 SQL 语句。而关键问题就出在第二次的调用上面。 下面以一个常用过滤方法…...
在线签约如何选择?2024年10款顶级app大比拼
支持电子合同签约的10大app:e签宝、上上签、DocuSign、契约锁、Adobe Sign、法大大、SignNow、安心签、HelloSign、PandaDoc。 无论是企业之间的交易还是个人服务合同,线上电子合同签约提供了一种便捷、高效且安全的方式来处理法律文档。本文将介绍几款优…...
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‘,如何解决?
🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…...
【电路笔记】-B类放大器
B类放大器 文章目录 B类放大器1、概述2、B类放大器介绍3、推挽式配置4、限制交叉失真5、B类放大器效率6、总结1、概述 我们在之前的文章中已经知道,A 类放大器的特点是导通角为 360,理论最大效率为 50%。 在本文中,我们将详细介绍另一类放大器,称为B类放大器,它是为解决A…...
Ubuntu 22.04 安装中文字体
笔者在用OpenCV4.9处理图片加水印时,中文乱码。原来是Ubuntu 22.04发行版缺少中文字体支持,因此,笔者就找资料安装了需要的中文字体,特此记录,以备后查。 1、打开终端: 2、更新软件包列表: su…...
「树莓派入门」树莓派进阶04-直流电机控制与PWM应用
直流电机控制是树莓派硬件项目中的一项重要技能。通过PWM技术,你可以实现对电机速度的精确控制。在实验过程中,请注意电机的电源匹配和GPIO引脚的保护。 一、直流电机基本原理 直流电机通过直流电源供电,其工作原理基于洛伦兹力定律,即电流通过线圈时,会在磁场中受到力的…...
利用数据集,用机器学习模型对股市预测,聊聊看!
🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…...
015-GeoGebra基础篇-定点旋转物体、动态显示数值并显示运动轨迹
这可能是我能想到的最大概率可以被你搜索到的标题了,容我先喘口气~ 目录 一、成品展示二、涉及内容三、做图步骤(1)绘制三角形t(2)建立定点D(3)制作角度滑动条(4)图形绕点…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...
论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving
地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...
spring Security对RBAC及其ABAC的支持使用
RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...
