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 关系。