当前位置: 首页 > 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 关系。
http://www.lryc.cn/news/391759.html

相关文章:

  • IT专业入门:高考假期预习指南
  • 推动高效能:东芝TB67H301FTG全桥直流电机驱动IC
  • Matplotlib 中文显示
  • 【LeetCode:841. 钥匙和房间 + DFS】
  • 1)并发事务的问题
  • Python缓存利器:cachetools库详解
  • 【Python实战因果推断】20_线性回归的不合理效果10
  • 在Ubuntu 16.04上安装和配置ownCloud的方法
  • Java | Leetcode Java题解之第213题打家劫舍II
  • 使用 ESP32 接收 MAX4466 模拟麦克风模块的数据,通过 DAC 转码成 PCM 格式,并通过 MQTT 发送给另一台设备,可以通过以下步骤实现。
  • SQL二次注入原理分析
  • 在线签约如何选择?2024年10款顶级app大比拼
  • gcc: warning: -Wunused-function;加了选项,为什么就不报警告呢?
  • 系统提示我未定义与 ‘double‘ 类型的输入参数相对应的函数 ‘finverse‘,如何解决?
  • 【电路笔记】-B类放大器
  • Ubuntu 22.04 安装中文字体
  • 「树莓派入门」树莓派进阶04-直流电机控制与PWM应用
  • 利用数据集,用机器学习模型对股市预测,聊聊看!
  • 015-GeoGebra基础篇-定点旋转物体、动态显示数值并显示运动轨迹
  • 2024年6月份找工作和面试总结
  • 同步时钟:北斗/GPS卫星、电信基站、NTP以太网校时方式的区别
  • 实现Java应用的快速开发与迭代
  • 利用redis数据库管理代理库爬取cosplay网站-cnblog
  • 数据仓库建模基础理论-01-为什么需要数据建模?
  • 中序遍历的两种实现——二叉树专题复习
  • python 基础综合应用——小开发
  • 算法金 | 我最常用的两个数据可视化软件,强烈推荐
  • 【机器学习实战】Baseline精读笔记
  • Redis 缓存问题及解决
  • RISC-V的历史与设计理念