Module bus.mapper
Class ConditionWrapper<T,I extends Serializable>
java.lang.Object
org.miaixz.bus.mapper.binding.condition.ConditionWrapper<T,I>
- Type Parameters:
T- 实体类类型I- 主键类型
封装 Condition 查询条件,提供链式调用接口以构建复杂查询
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
ConstructorsConstructorDescriptionConditionWrapper(BasicMapper<T, I> basicMapper, Condition<T> condition) 构造函数,初始化基本 Mapper 和 Condition -
Method Summary
Modifier and TypeMethodDescriptionanyCondition(boolean useCondition, String condition) 条件添加任意查询条件anyCondition(boolean useCondition, String condition, Object value) 条件添加自定义条件和值anyCondition(boolean useCondition, String condition, Supplier<Object> supplier) 条件添加自定义条件和动态值anyCondition(String condition) 添加任意查询条件anyCondition(String condition, Object value) 添加自定义条件和值条件指定字段在值区间内between(boolean useCondition, Fn<T, Object> fn, Supplier<Object> supplier1, Supplier<Object> supplier2) 条件指定字段在动态值区间内指定字段在值区间内clear()清除所有条件并重置为新条件获取当前查询条件条件指定字段包含值(LIKE %值%)条件指定字段包含动态值(LIKE %值%)指定字段包含值(LIKE %值%)longcount()查询符合条件的记录总数org.apache.ibatis.cursor.Cursor<T> cursor()获取符合条件的记录游标intdelete()根据当前条件删除记录distinct()启用 DISTINCT 查询设置结尾 SQL条件指定字段以后缀值结尾(LIKE %值)条件指定字段以动态后缀值结尾(LIKE %值)指定字段以后缀值结尾(LIKE %值)条件指定字段等于值条件指定字段等于动态值指定字段等于值final ConditionWrapper<T, I> 排除指定查询列org.miaixz.bus.core.lang.Optional<T> first()查询符合条件的第一条记录条件指定字段大于等于值条件指定字段大于等于动态值指定字段大于等于值条件指定字段大于值条件指定字段大于动态值指定字段大于值条件指定字段在值集合中条件指定字段在动态值集合中指定字段在值集合中条件指定字段非 NULL指定字段非 NULL条件指定字段为 NULL指定字段为 NULL条件指定字段小于等于值条件指定字段小于等于动态值指定字段小于等于值条件指定字段模糊匹配值条件指定字段模糊匹配动态值指定字段模糊匹配值list()查询符合条件的记录列表条件指定字段小于值条件指定字段小于动态值指定字段小于值条件指定字段不等于值条件指定字段不等于动态值指定字段不等于值条件指定字段不在值区间内notBetween(boolean useCondition, Fn<T, Object> fn, Supplier<Object> supplier1, Supplier<Object> supplier2) 条件指定字段不在动态值区间内指定字段不在值区间内条件指定字段不在值集合中条件指定字段不在动态值集合中指定字段不在值集合中条件指定字段不模糊匹配值条件指定字段不模糊匹配动态值指定字段不模糊匹配值offset(int offset, int limit) 偏移量查询符合条件的记录org.miaixz.bus.core.lang.Optional<T> one()查询符合条件的唯一记录,若多条记录则抛出异常or()添加一组 OR 条件final ConditionWrapper<T, I> or(Function<OrCriteria<T>, OrCriteria<T>>... orParts) 嵌套 OR 查询,多个条件块以 OR 连接,块内为 AND条件设置动态构造的排序设置字符串形式的排序,不覆盖已有排序设置动态构造的排序设置排序字段final ConditionWrapper<T, I> orderByAsc(Fn<T, Object>... fns) 设置升序排序final ConditionWrapper<T, I> orderByDesc(Fn<T, Object>... fns) 设置降序排序page(int pageNum, int pageSize) 分页查询符合条件的记录final ConditionWrapper<T, I> 指定查询列条件设置更新字段和值条件设置更新字段和值条件设置更新字段和动态值设置更新字段和值设置更新字段和值设置起始 SQLstartsWith(boolean useCondition, Fn<T, Object> fn, String value) 条件指定字段以前缀值开头(LIKE 值%)条件指定字段以动态前缀值开头(LIKE 值%)startsWith(Fn<T, Object> fn, String value) 指定字段以前缀值开头(LIKE 值%)stream()查询符合条件的记录流top(int n) 查询符合条件的前 n 条记录intupdate()更新符合条件的记录为 SET 设置的值int更新符合条件的记录为指定实体值intupdateSelective(T t) 更新符合条件的记录为指定实体非空值
-
Constructor Details
-
ConditionWrapper
构造函数,初始化基本 Mapper 和 Condition- Parameters:
basicMapper- 基本 Mapper 实例condition- 查询条件对象
-
-
Method Details
-
or
添加一组 OR 条件- Returns:
- 当前包装器对象
-
condition
获取当前查询条件- Returns:
- 当前 Condition 对象
-
clear
清除所有条件并重置为新条件- Returns:
- 当前包装器对象
-
select
指定查询列- Parameters:
fns- 方法引用数组- Returns:
- 当前包装器对象
-
exclude
排除指定查询列- Parameters:
fns- 方法引用数组- Returns:
- 当前包装器对象
-
startSql
设置起始 SQL- Parameters:
startSql- 起始 SQL- Returns:
- 当前包装器对象
-
endSql
设置结尾 SQL- Parameters:
endSql- 结尾 SQL- Returns:
- 当前包装器对象
-
orderBy
设置排序字段- Parameters:
fn- 排序列方法引用order- 排序方式(ASC/DESC)- Returns:
- 当前包装器对象
-
orderBy
设置字符串形式的排序,不覆盖已有排序- Parameters:
orderByCondition- 排序表达式- Returns:
- 当前包装器对象
-
orderBy
设置动态构造的排序- Parameters:
orderByCondition- 排序表达式提供者- Returns:
- 当前包装器对象
-
orderBy
条件设置动态构造的排序- Parameters:
useOrderBy- 是否启用排序orderByCondition- 排序表达式提供者- Returns:
- 当前包装器对象
-
orderByAsc
设置升序排序- Parameters:
fns- 排序列方法引用数组- Returns:
- 当前包装器对象
-
orderByDesc
设置降序排序- Parameters:
fns- 排序列方法引用数组- Returns:
- 当前包装器对象
-
distinct
启用 DISTINCT 查询- Returns:
- 当前包装器对象
-
set
条件设置更新字段和值- Parameters:
useSet- 是否启用setSql- SET 子句,如 "column = value"- Returns:
- 当前包装器对象
-
set
设置更新字段和值- Parameters:
setSql- SET 子句,如 "column = value"- Returns:
- 当前包装器对象
-
set
条件设置更新字段和值- Parameters:
useSet- 是否启用fn- 字段方法引用value- 值- Returns:
- 当前包装器对象
-
set
条件设置更新字段和动态值- Parameters:
useSet- 是否启用fn- 字段方法引用supplier- 值提供者- Returns:
- 当前包装器对象
-
set
设置更新字段和值- Parameters:
fn- 字段方法引用value- 值- Returns:
- 当前包装器对象
-
isNull
条件指定字段为 NULL- Parameters:
useCondition- 是否启用fn- 字段方法引用- Returns:
- 当前包装器对象
-
isNull
指定字段为 NULL- Parameters:
fn- 字段方法引用- Returns:
- 当前包装器对象
-
isNotNull
条件指定字段非 NULL- Parameters:
useCondition- 是否启用fn- 字段方法引用- Returns:
- 当前包装器对象
-
isNotNull
指定字段非 NULL- Parameters:
fn- 字段方法引用- Returns:
- 当前包装器对象
-
eq
条件指定字段等于值- Parameters:
useCondition- 是否启用fn- 字段方法引用value- 值- Returns:
- 当前包装器对象
-
eq
条件指定字段等于动态值- Parameters:
useCondition- 是否启用fn- 字段方法引用supplier- 值提供者- Returns:
- 当前包装器对象
-
eq
指定字段等于值- Parameters:
fn- 字段方法引用value- 值- Returns:
- 当前包装器对象
-
ne
条件指定字段不等于动态值- Parameters:
useCondition- 是否启用fn- 字段方法引用supplier- 值提供者- Returns:
- 当前包装器对象
-
ne
条件指定字段不等于值- Parameters:
useCondition- 是否启用fn- 字段方法引用value- 值- Returns:
- 当前包装器对象
-
ne
指定字段不等于值- Parameters:
fn- 字段方法引用value- 值- Returns:
- 当前包装器对象
-
gt
条件指定字段大于动态值- Parameters:
useCondition- 是否启用fn- 字段方法引用supplier- 值提供者- Returns:
- 当前包装器对象
-
gt
条件指定字段大于值- Parameters:
useCondition- 是否启用fn- 字段方法引用value- 值- Returns:
- 当前包装器对象
-
gt
指定字段大于值- Parameters:
fn- 字段方法引用value- 值- Returns:
- 当前包装器对象
-
ge
条件指定字段大于等于动态值- Parameters:
useCondition- 是否启用fn- 字段方法引用supplier- 值提供者- Returns:
- 当前包装器对象
-
ge
条件指定字段大于等于值- Parameters:
useCondition- 是否启用fn- 字段方法引用value- 值- Returns:
- 当前包装器对象
-
ge
指定字段大于等于值- Parameters:
fn- 字段方法引用value- 值- Returns:
- 当前包装器对象
-
lt
条件指定字段小于动态值- Parameters:
useCondition- 是否启用fn- 字段方法引用supplier- 值提供者- Returns:
- 当前包装器对象
-
lt
条件指定字段小于值- Parameters:
useCondition- 是否启用fn- 字段方法引用value- 值- Returns:
- 当前包装器对象
-
lt
指定字段小于值- Parameters:
fn- 字段方法引用value- 值- Returns:
- 当前包装器对象
-
le
条件指定字段小于等于值- Parameters:
useCondition- 是否启用fn- 字段方法引用value- 值- Returns:
- 当前包装器对象
-
le
条件指定字段小于等于动态值- Parameters:
useCondition- 是否启用fn- 字段方法引用supplier- 值提供者- Returns:
- 当前包装器对象
-
le
指定字段小于等于值- Parameters:
fn- 字段方法引用value- 值- Returns:
- 当前包装器对象
-
in
条件指定字段在值集合中- Parameters:
useCondition- 是否启用fn- 字段方法引用values- 值集合- Returns:
- 当前包装器对象
-
in
public ConditionWrapper<T,I> in(boolean useCondition, Fn<T, Object> fn, Supplier<Iterable<?>> supplier) 条件指定字段在动态值集合中- Parameters:
useCondition- 是否启用fn- 字段方法引用supplier- 值集合提供者- Returns:
- 当前包装器对象
-
in
指定字段在值集合中- Parameters:
fn- 字段方法引用values- 值集合- Returns:
- 当前包装器对象
-
notIn
条件指定字段不在值集合中- Parameters:
useCondition- 是否启用fn- 字段方法引用values- 值集合- Returns:
- 当前包装器对象
-
notIn
public ConditionWrapper<T,I> notIn(boolean useCondition, Fn<T, Object> fn, Supplier<Iterable<?>> supplier) 条件指定字段不在动态值集合中- Parameters:
useCondition- 是否启用fn- 字段方法引用supplier- 值集合提供者- Returns:
- 当前包装器对象
-
notIn
指定字段不在值集合中- Parameters:
fn- 字段方法引用values- 值集合- Returns:
- 当前包装器对象
-
between
public ConditionWrapper<T,I> between(boolean useCondition, Fn<T, Object> fn, Object value1, Object value2) 条件指定字段在值区间内- Parameters:
useCondition- 是否启用fn- 字段方法引用value1- 区间起始值value2- 区间结束值- Returns:
- 当前包装器对象
-
between
public ConditionWrapper<T,I> between(boolean useCondition, Fn<T, Object> fn, Supplier<Object> supplier1, Supplier<Object> supplier2) 条件指定字段在动态值区间内- Parameters:
useCondition- 是否启用fn- 字段方法引用supplier1- 区间起始值提供者supplier2- 区间结束值提供者- Returns:
- 当前包装器对象
-
between
指定字段在值区间内- Parameters:
fn- 字段方法引用value1- 区间起始值value2- 区间结束值- Returns:
- 当前包装器对象
-
notBetween
public ConditionWrapper<T,I> notBetween(boolean useCondition, Fn<T, Object> fn, Object value1, Object value2) 条件指定字段不在值区间内- Parameters:
useCondition- 是否启用fn- 字段方法引用value1- 区间起始值value2- 区间结束值- Returns:
- 当前包装器对象
-
notBetween
public ConditionWrapper<T,I> notBetween(boolean useCondition, Fn<T, Object> fn, Supplier<Object> supplier1, Supplier<Object> supplier2) 条件指定字段不在动态值区间内- Parameters:
useCondition- 是否启用fn- 字段方法引用supplier1- 区间起始值提供者supplier2- 区间结束值提供者- Returns:
- 当前包装器对象
-
notBetween
指定字段不在值区间内- Parameters:
fn- 字段方法引用value1- 区间起始值value2- 区间结束值- Returns:
- 当前包装器对象
-
contains
条件指定字段包含值(LIKE %值%)- Parameters:
useCondition- 是否启用fn- 字段方法引用value- 值,两侧自动添加 %- Returns:
- 当前包装器对象
-
contains
public ConditionWrapper<T,I> contains(boolean useCondition, Fn<T, Object> fn, Supplier<String> supplier) 条件指定字段包含动态值(LIKE %值%)- Parameters:
useCondition- 是否启用fn- 字段方法引用supplier- 值提供者,两侧自动添加 %- Returns:
- 当前包装器对象
-
contains
指定字段包含值(LIKE %值%)- Parameters:
fn- 字段方法引用value- 值,两侧自动添加 %- Returns:
- 当前包装器对象
-
startsWith
条件指定字段以前缀值开头(LIKE 值%)- Parameters:
useCondition- 是否启用fn- 字段方法引用value- 值,右侧自动添加 %- Returns:
- 当前包装器对象
-
startsWith
public ConditionWrapper<T,I> startsWith(boolean useCondition, Fn<T, Object> fn, Supplier<String> supplier) 条件指定字段以动态前缀值开头(LIKE 值%)- Parameters:
useCondition- 是否启用fn- 字段方法引用supplier- 值提供者,右侧自动添加 %- Returns:
- 当前包装器对象
-
startsWith
指定字段以前缀值开头(LIKE 值%)- Parameters:
fn- 字段方法引用value- 值,右侧自动添加 %- Returns:
- 当前包装器对象
-
endsWith
条件指定字段以后缀值结尾(LIKE %值)- Parameters:
useCondition- 是否启用fn- 字段方法引用value- 值,左侧自动添加 %- Returns:
- 当前包装器对象
-
endsWith
public ConditionWrapper<T,I> endsWith(boolean useCondition, Fn<T, Object> fn, Supplier<String> supplier) 条件指定字段以动态后缀值结尾(LIKE %值)- Parameters:
useCondition- 是否启用fn- 字段方法引用supplier- 值提供者,左侧自动添加 %- Returns:
- 当前包装器对象
-
endsWith
指定字段以后缀值结尾(LIKE %值)- Parameters:
fn- 字段方法引用value- 值,左侧自动添加 %- Returns:
- 当前包装器对象
-
like
条件指定字段模糊匹配值- Parameters:
useCondition- 是否启用fn- 字段方法引用value- 值,需指定 % 或 _ 进行模糊匹配- Returns:
- 当前包装器对象
-
like
条件指定字段模糊匹配动态值- Parameters:
useCondition- 是否启用fn- 字段方法引用supplier- 值提供者,需指定 % 或 _ 进行模糊匹配- Returns:
- 当前包装器对象
-
like
指定字段模糊匹配值- Parameters:
fn- 字段方法引用value- 值,需指定 % 或 _ 进行模糊匹配- Returns:
- 当前包装器对象
-
notLike
条件指定字段不模糊匹配值- Parameters:
useCondition- 是否启用fn- 字段方法引用value- 值,需指定 % 进行模糊匹配- Returns:
- 当前包装器对象
-
notLike
public ConditionWrapper<T,I> notLike(boolean useCondition, Fn<T, Object> fn, Supplier<Object> supplier) 条件指定字段不模糊匹配动态值- Parameters:
useCondition- 是否启用fn- 字段方法引用supplier- 值提供者,需指定 % 进行模糊匹配- Returns:
- 当前包装器对象
-
notLike
指定字段不模糊匹配值- Parameters:
fn- 字段方法引用value- 值,需指定 % 进行模糊匹配- Returns:
- 当前包装器对象
-
anyCondition
条件添加任意查询条件- Parameters:
useCondition- 是否启用condition- 自定义条件- Returns:
- 当前包装器对象
-
anyCondition
添加任意查询条件- Parameters:
condition- 自定义条件- Returns:
- 当前包装器对象
-
anyCondition
条件添加自定义条件和值- Parameters:
useCondition- 是否启用condition- 自定义条件,如 "length(column) ="value- 值- Returns:
- 当前包装器对象
-
anyCondition
public ConditionWrapper<T,I> anyCondition(boolean useCondition, String condition, Supplier<Object> supplier) 条件添加自定义条件和动态值- Parameters:
useCondition- 是否启用condition- 自定义条件,如 "length(column) ="supplier- 值提供者- Returns:
- 当前包装器对象
-
anyCondition
添加自定义条件和值- Parameters:
condition- 自定义条件,如 "length(column) ="value- 值- Returns:
- 当前包装器对象
-
or
@SafeVarargs public final ConditionWrapper<T,I> or(Function<OrCriteria<T>, OrCriteria<T>>... orParts) 嵌套 OR 查询,多个条件块以 OR 连接,块内为 AND- Parameters:
orParts- OR 条件块函数- Returns:
- 当前包装器对象
-
delete
public int delete()根据当前条件删除记录- Returns:
- 受影响的行数
-
update
public int update()更新符合条件的记录为 SET 设置的值- Returns:
- 受影响的行数
-
update
更新符合条件的记录为指定实体值- Parameters:
t- 实体对象- Returns:
- 受影响的行数
-
updateSelective
更新符合条件的记录为指定实体非空值- Parameters:
t- 实体对象- Returns:
- 受影响的行数
-
list
查询符合条件的记录列表- Returns:
- 实体对象列表
-
page
分页查询符合条件的记录- Parameters:
pageNum- 页码pageSize- 每页大小- Returns:
- 实体对象列表
-
offset
偏移量查询符合条件的记录- Parameters:
offset- 偏移量limit- 限制数量- Returns:
- 实体对象列表
-
cursor
获取符合条件的记录游标- Returns:
- 实体对象游标
-
stream
查询符合条件的记录流- Returns:
- 实体对象流
-
one
查询符合条件的唯一记录,若多条记录则抛出异常- Returns:
- 可能为空的实体对象
-
first
查询符合条件的第一条记录- Returns:
- 可能为空的实体对象
-
top
查询符合条件的前 n 条记录- Parameters:
n- 记录数- Returns:
- 实体对象列表
-
count
public long count()查询符合条件的记录总数- Returns:
- 记录总数
-