当前位置: 首页 > 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;图形绕点…...

如何用XUnity.AutoTranslator实现Unity游戏实时翻译?3大核心优势与5步落地指南

如何用XUnity.AutoTranslator实现Unity游戏实时翻译&#xff1f;3大核心优势与5步落地指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾因语言障碍错失精彩的Unity游戏内容&#xff1f;XUnity…...

Cadence 17.4 PCBEditor 中文菜单设置保姆级教程(含环境变量配置与补丁号查看)

Cadence 17.4 PCBEditor 中文界面配置全攻略&#xff1a;从环境变量到实战技巧 刚接触Cadence Allegro的工程师常被其全英文界面劝退。其实从17.4版本开始&#xff0c;PCBEditor已内置中文支持&#xff0c;只是需要一些"隐藏操作"来激活。本文将手把手带你完成从补丁…...

黑丝空姐-造相Z-Turbo应用场景:快速生成创意配图,提升内容创作效率

黑丝空姐-造相Z-Turbo应用场景&#xff1a;快速生成创意配图&#xff0c;提升内容创作效率 1. 镜像概述与核心价值 黑丝空姐-造相Z-Turbo是一款基于Xinference部署的文生图模型服务&#xff0c;专门针对特定风格图片生成进行了优化。该镜像通过gradio提供了直观的Web界面&…...

ViVe完整贡献指南:从入门到精通的开源参与秘籍

ViVe完整贡献指南&#xff1a;从入门到精通的开源参与秘籍 【免费下载链接】ViVe C# library and console app for using new feature control APIs available in Windows 10 version 2004 and newer 项目地址: https://gitcode.com/gh_mirrors/vi/ViVe ViVe是一个C#库&…...

QtPlaskin实战指南:从HDF5数据解析到等离子体动力学可视化

1. QtPlaskin与等离子体动力学分析入门 第一次接触QtPlaskin时&#xff0c;我被它处理复杂等离子体数据的能力惊艳到了。这个基于Python和Qt开发的图形工具&#xff0c;专门用于解析ZDPlasKin等等离子体动力学程序生成的HDF5格式数据。想象一下&#xff0c;你刚完成了一个长达…...

旧笔记本别扔!用飞牛OS+阿里云DDNS,5分钟搞定个人云盘外网访问

旧笔记本改造指南&#xff1a;用飞牛OS与阿里云DDNS打造高性价比个人云存储 你是否曾为家中堆积的旧电子设备感到困扰&#xff1f;那些性能落后但依然能正常运行的旧笔记本&#xff0c;其实蕴藏着巨大的实用价值。本文将带你探索如何将这些被时代淘汰的硬件变废为宝&#xff0c…...

Python多线程/多进程内存爆炸真相:GIL锁外的隐性开销、共享对象深拷贝黑洞与零拷贝迁移方案

第一章&#xff1a;Python智能体内存管理策略入门导论Python智能体&#xff08;如基于LLM的Agent、ReAct架构或Tool-Calling系统&#xff09;在运行过程中频繁创建、传递与销毁对象&#xff0c;其内存行为远超普通脚本应用。理解CPython底层的引用计数、循环垃圾回收&#xff0…...

QT实战:用QScrollArea+QListWidget复刻迅雷设置界面(附完整源码)

QT实战&#xff1a;用QScrollAreaQListWidget复刻迅雷设置界面&#xff08;附完整源码&#xff09; 在桌面应用开发中&#xff0c;设置界面的设计往往考验着开发者对布局和交互逻辑的掌控能力。迅雷作为一款经典的下载工具&#xff0c;其设置界面以清晰的导航结构和流畅的滚动体…...

Claude Code + DeepSeek:用自然语言从PRD到上线的打地鼠游戏全流程实录

Claude Code DeepSeek&#xff1a;用自然语言从PRD到上线的打地鼠游戏全流程实录 最近在技术社区里&#xff0c;一个有趣的趋势正在兴起——开发者们开始尝试用自然语言描述需求&#xff0c;然后让AI编程助手自动完成从文档编写到代码生成的全流程。这听起来像科幻小说里的场景…...

SDMatte模型推理参数详解:平衡速度与精度的调优手册

SDMatte模型推理参数详解&#xff1a;平衡速度与精度的调优手册 1. 前言&#xff1a;为什么需要参数调优 第一次用SDMatte抠图时&#xff0c;你可能遇到过这种情况&#xff1a;明明模型效果很好&#xff0c;但要么等半天才出结果&#xff0c;要么生成边缘毛毛糙糙。这往往是因…...