关于LambdaQueryWrapper

一、比较方法(Comparison Methods)

方法签名作用参数注意事项
eq(SFunction<T,?> column, Object val)等于 =val为null时生成 IS NULL;字段类型需匹配
ne(SFunction<T,?> column, Object val)不等于 !=空字符串会生成 != '' 条件
gt(SFunction<T,?> column, Object val)大于 >数值类型字段需防null,建议用包装类
ge(SFunction<T,?> column, Object val)大于等于 >=日期比较推荐LocalDateTime类型
lt(SFunction<T,?> column, Object val)小于 <避免基本数据类型(int/long)
le(SFunction<T,?> column, Object val)小于等于 <=注意边界值处理
between(SFunction<T,?> column, L val1, R val2)BETWEEN 值1 AND 值2val1 > val2 时自动交换;任一null则条件失效
notBetween(SFunction<T,?> column, L val1, R val2)NOT BETWEEN空区间处理逻辑同between

二、空值判断(Null Checks)

方法签名作用参数注意事项
isNull(SFunction<T,?> column)IS NULL无需参数,直接调用
isNotNull(SFunction<T,?> column)IS NOT NULL与notNull()等价
eq(boolean condition, SFunction<T,?> column, Object val)条件等值查询condition=false时跳过条件,用于动态SQL

三、模糊查询(Like Queries)

方法签名作用参数注意事项
like(SFunction<T,?> column, Object val)LIKE %值%val需自带%通配符;空字符串不生成条件
likeLeft(SFunction<T,?> column, Object val)LIKE %值前缀匹配(结尾固定)
likeRight(SFunction<T,?> column, Object val)LIKE 值%后缀匹配(推荐索引);值null时不生成条件
notLike(SFunction<T,?> column, Object val)NOT LIKE注意数据库大小写敏感配置

四、集合操作(In/NotIn)

方法签名作用参数注意事项
in(SFunction<T,?> column, Collection<?> coll)IN (集合)coll空集合时生成 1=0(恒假)
in(SFunction<T,?> column, Object... values)IN (值列表)values空数组时生成 1=0
notIn(SFunction<T,?> column, Collection<?> coll)NOT INcoll包含null时整个条件失效
inSql(SFunction<T,?> column, String inValue)子查询INinValue需完整子查询SQL:"SELECT id FROM table"

五、逻辑操作(Logical Operations)

方法签名作用参数注意事项
and(Consumer<LambdaQueryWrapper<T>> consumer)AND 嵌套consumer内条件用括号包裹
or(Consumer<LambdaQueryWrapper<T>> consumer)OR 嵌套避免多层嵌套破坏索引
nested(Consumer<LambdaQueryWrapper<T>> consumer)无连接符嵌套需配合and/or使用
or()OR 连接符影响后续条件连接方式

六、排序方法(Ordering)

方法签名作用参数注意事项
orderByAsc(SFunction<T,?> column)ORDER BY 字段 ASC可链式调用多字段
orderByDesc(SFunction<T,?> column)ORDER BY 字段 DESC注意索引顺序优化
orderByAsc(boolean condition, SFunction<T,?>... columns)条件排序condition=false时跳过排序
last(String lastSql)追加SQL末尾直接拼接SQL,有SQL注入风险

七、字段选择(Select Columns)

方法签名作用参数注意事项
select(SFunction<T,?>... columns)指定返回字段避免select(*)性能问题
select(Class<T> entityClass, Predicate<TableFieldInfo> predicate)动态字段选择需配合MyBatis-Plus 3.4+
excludeColumns(SFunction<T,?>... columns)排除字段优先级高于select()

八、子查询与函数(Subquery & Functions)

方法签名作用参数注意事项
exists(String existsSql)EXISTS (子查询)需完整子查询语句
notExists(String notExistsSql)NOT EXISTS注意子查询性能
apply(String applySql, Object... params)自定义SQL片段防SQL注入! 用{0}占位符
func(Consumer<AbstractLambdaWrapper> consumer)函数式条件复杂条件推荐使用

九、分页与分组(Pagination & Grouping)

方法签名作用参数注意事项
groupBy(SFunction<T,?>... columns)GROUP BY 字段需配合select()使用
having(String havingSql)HAVING 条件需手动写条件语句
distinct(boolean distinct)去重查询仅部分数据库支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值