一、比较方法(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 值2 | val1 > 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 IN | coll包含null时整个条件失效 |
inSql(SFunction<T,?> column, String inValue) | 子查询IN | inValue需完整子查询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) | 去重查询 | 仅部分数据库支持 |