【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)图形绕点…...
Python基础篇:闭包、装饰器wrapper
一、闭包 元组字典解包 def func(*args, **kwargs):print(type(args)) # <class tuple>print...
【车辆路径规划】基于RRT算法的车辆导航工具箱实现附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室👇 关注我领取海量matlab电子书和数学建模资料 dz…...
CPT 强化学习(Cumulative Prospect Theory Reinforcement Learning)代码实现
✅ CPT 强化学习(Cumulative Prospect Theory Reinforcement Learning)代码实现 以下提供实用、可运行的 Python 实现,结合 Cumulative Prospect Theory (CPT) 与强化学习。 1. 核心概念回顾 在传统 RL 中,目标是最大化期望回报&a…...
使用Taotoken后API调用延迟与账单透明度的实际体验
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken后API调用延迟与账单透明度的实际体验 1. 引言 对于需要调用多种大模型API的开发者而言,统一接入和成本管…...
茅台预约自动化系统:构建高并发智能调度解决方案
茅台预约自动化系统:构建高并发智能调度解决方案 【免费下载链接】campus-imaotai i茅台app自动预约,每日自动预约,支持docker一键部署(本项目不提供成品,使用的是已淘汰的算法) 项目地址: https://gitco…...
应对野外挑战:鼎讯GO-50PRO在交通光缆施工中的核心优势
在铁路、高速公路等交通基础设施的智能化建设中,稳定高效的光纤网络是指挥调度、安全监控等核心系统运行的生命线。鼎讯GO-50PRO光时域反射仪,作为一款集成了多种测试功能的专业设备,正成为保障这些关键通信链路畅通无阻的可靠选择。无惧恶劣…...
next.js 开发中的水合(Hydration)问题
Next.js 16.2 React 19 完全规避水合问题开发规范完整指南 一、水合问题的根本原因 水合错误(Hydration Mismatch)发生的唯一根本原因是:服务端渲染生成的 HTML 与客户端首次渲染生成的虚拟 DOM 结构不一致。 React 19 对水合错误的检测更加…...
Gemini深度研究模式全解析(2024最新版API+多模态检索内参):谷歌内部技术白皮书级拆解
更多请点击: https://codechina.net 第一章:Gemini深度研究模式的核心定位与演进脉络 Gemini深度研究模式并非单纯的功能叠加,而是Google面向复杂知识工作场景构建的推理范式跃迁。它将多跳检索、跨模态证据聚合与可验证推理链生成深度融合&…...
独立开发者如何利用 Taotoken 的 Token Plan 降低项目长期成本
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 独立开发者如何利用 Taotoken 的 Token Plan 降低项目长期成本 对于独立开发者而言,项目的长期维护成本是必须精打细算…...
ChatGPT翻译质量真相:20年本地化专家实测12类文本(技术文档/法律合同/文学隐喻),准确率暴跌的3个致命盲区!
更多请点击: https://intelliparadigm.com 第一章:ChatGPT翻译质量怎么样 ChatGPT 在多语种翻译任务中展现出较强的上下文理解与语义连贯能力,尤其在非技术类通用文本(如日常对话、新闻摘要、文学性段落)上࿰…...
