类 AbstractWrapper<T,R,Children extends AbstractWrapper<T,R,Children>>
- java.lang.Object
-
- com.baomidou.mybatisplus.core.conditions.Wrapper<T>
-
- com.baomidou.mybatisplus.core.conditions.AbstractWrapper<T,R,Children>
-
- 所有已实现的接口:
Compare<Children,R>,Func<Children,R>,Join<Children>,Nested<Children,Children>,ISqlSegment,java.io.Serializable
- 直接已知子类:
AbstractLambdaWrapper,QueryWrapper,UpdateWrapper
public abstract class AbstractWrapper<T,R,Children extends AbstractWrapper<T,R,Children>> extends Wrapper<T> implements Compare<Children,R>, Nested<Children,Children>, Join<Children>, Func<Children,R>
查询条件封装- 从以下版本开始:
- 2017-05-26
- 作者:
- hubin miemie HCL
- 另请参阅:
- 序列化表格
-
-
嵌套类概要
嵌套类 修饰符和类型 类 说明 static interfaceAbstractWrapper.DoSomething做事函数
-
字段概要
字段 修饰符和类型 字段 说明 protected MergeSegmentsexpressionprotected SharedStringlastSqlprotected SharedStringparamAlias其他protected java.util.concurrent.atomic.AtomicIntegerparamNameSeq必要度量protected java.util.Map<java.lang.String,java.lang.Object>paramNameValuePairsprotected SharedStringsqlCommentSQL注释protected SharedStringsqlFirstSQL起始语句protected ChildrentypedThis占位符
-
构造器概要
构造器 构造器 说明 AbstractWrapper()
-
方法概要
所有方法 实例方法 抽象方法 具体方法 修饰符和类型 方法 说明 protected ChildrenaddCondition(boolean condition, R column, SqlKeyword sqlKeyword, java.lang.Object val)普通查询条件protected ChildrenaddNestedCondition(boolean condition, java.util.function.Consumer<Children> consumer)多重嵌套查询条件<V> ChildrenallEq(boolean condition, java.util.function.BiPredicate<R,V> filter, java.util.Map<R,V> params, boolean null2IsNull)字段过滤接口,传入多参数时允许对参数进行过滤<V> ChildrenallEq(boolean condition, java.util.Map<R,V> params, boolean null2IsNull)map 所有非空属性等于 =protected Childrenand(boolean condition)内部自用Childrenand(boolean condition, java.util.function.Consumer<Children> consumer)AND 嵌套protected voidappendSqlSegments(ISqlSegment... sqlSegments)添加 where 片段Childrenapply(boolean condition, java.lang.String applySql, java.lang.Object... values)拼接 sqlChildrenbetween(boolean condition, R column, java.lang.Object val1, java.lang.Object val2)BETWEEN 值1 AND 值2voidclear()条件清空Childrenclone()protected RcolumnSqlInjectFilter(R column)字段 SQL 注入过滤处理,子类重写实现过滤逻辑protected java.lang.StringcolumnsToString(java.util.List<R> columns)多字段转换为逗号 "," 分割字符串protected java.lang.StringcolumnsToString(R... columns)获取 columnNamesprotected ISqlSegmentcolumnToSqlSegment(R column)获取 columnNameprotected java.lang.StringcolumnToString(R column)获取 columnNameChildrencomment(boolean condition, java.lang.String comment)sql 注释(会拼接在 sql 的最后面)Childreneq(boolean condition, R column, java.lang.Object val)等于 =Childrenexists(boolean condition, java.lang.String existsSql, java.lang.Object... values)拼接 EXISTS ( sql语句 )Childrenfirst(boolean condition, java.lang.String firstSql)sql 起始句(会拼接在SQL语句的起始处)protected java.lang.StringformatParam(java.lang.String mapping, java.lang.Object param)处理入参protected java.lang.StringformatSqlMaybeWithParam(java.lang.String sqlStr, java.lang.String mapping, java.lang.Object... params)格式化 sqlChildrenfunc(boolean condition, java.util.function.Consumer<Children> consumer)消费函数Childrenge(boolean condition, R column, java.lang.Object val)大于等于 >=ChildrengeSql(boolean condition, R column, java.lang.String inValue)字段 >= ( sql语句 )TgetEntity()实体对象(子类实现)java.lang.Class<T>getEntityClass()MergeSegmentsgetExpression()获取 MergeSegmentsjava.lang.StringgetParamAlias()java.util.Map<java.lang.String,java.lang.Object>getParamNameValuePairs()java.lang.StringgetSqlComment()java.lang.StringgetSqlFirst()java.lang.StringgetSqlSegment()SQL 片段ChildrengroupBy(boolean condition, java.util.List<R> columns)分组:GROUP BY 字段, ...ChildrengroupBy(boolean condition, R column)分组:GROUP BY 字段, ...ChildrengroupBy(boolean condition, R column, R... columns)分组:GROUP BY 字段, ...Childrengt(boolean condition, R column, java.lang.Object val)大于 >ChildrengtSql(boolean condition, R column, java.lang.String inValue)字段 > ( sql语句 )Childrenhaving(boolean condition, java.lang.String sqlHaving, java.lang.Object... params)HAVING ( sql语句 )Childrenin(boolean condition, R column, java.lang.Object... values)字段 IN (v0, v1, ...)Childrenin(boolean condition, R column, java.util.Collection<?> coll)字段 IN (value.get(0), value.get(1), ...)protected ISqlSegmentinExpression(java.lang.Object[] values)获取in表达式 包含括号protected ISqlSegmentinExpression(java.util.Collection<?> value)获取in表达式 包含括号protected voidinitNeed()必要的初始化ChildreninSql(boolean condition, R column, java.lang.String inValue)字段 IN ( sql语句 )protected abstract Childreninstance()子类返回一个自己的新对象ChildrenisNotNull(boolean condition, R column)字段 IS NOT NULLChildrenisNull(boolean condition, R column)字段 IS NULLbooleanisUseAnnotationOrderBy()是否使用默认注解OrderBy排序Childrenlast(boolean condition, java.lang.String lastSql)无视优化规则直接拼接到 sql 的最后(有sql注入的风险,请谨慎使用)Childrenle(boolean condition, R column, java.lang.Object val)小于等于 <=ChildrenleSql(boolean condition, R column, java.lang.String inValue)字段 <= ( sql语句 )Childrenlike(boolean condition, R column, java.lang.Object val)LIKE '%值%'ChildrenlikeLeft(boolean condition, R column, java.lang.Object val)LIKE '%值'ChildrenlikeRight(boolean condition, R column, java.lang.Object val)LIKE '值%'protected ChildrenlikeValue(boolean condition, SqlKeyword keyword, R column, java.lang.Object val, SqlLike sqlLike)内部自用Childrenlt(boolean condition, R column, java.lang.Object val)小于 <ChildrenltSql(boolean condition, R column, java.lang.String inValue)字段 < ( sql语句 )protected ChildrenmaybeDo(boolean condition, AbstractWrapper.DoSomething something)函数化的做事Childrenne(boolean condition, R column, java.lang.Object val)不等于 <>Childrennested(boolean condition, java.util.function.Consumer<Children> consumer)正常嵌套 不带 AND 或者 ORprotected Childrennot(boolean condition)内部自用Childrennot(boolean condition, java.util.function.Consumer<Children> consumer)not嵌套ChildrennotBetween(boolean condition, R column, java.lang.Object val1, java.lang.Object val2)NOT BETWEEN 值1 AND 值2ChildrennotExists(boolean condition, java.lang.String existsSql, java.lang.Object... values)拼接 NOT EXISTS ( sql语句 )ChildrennotIn(boolean condition, R column, java.lang.Object... values)字段 NOT IN (v0, v1, ...)ChildrennotIn(boolean condition, R column, java.util.Collection<?> coll)字段 NOT IN (value.get(0), value.get(1), ...)ChildrennotInSql(boolean condition, R column, java.lang.String inValue)字段 NOT IN ( sql语句 )ChildrennotLike(boolean condition, R column, java.lang.Object val)NOT LIKE '%值%'Childrenor(boolean condition)拼接 ORChildrenor(boolean condition, java.util.function.Consumer<Children> consumer)OR 嵌套ChildrenorderBy(boolean condition, boolean isAsc, java.util.List<R> columns)排序:ORDER BY 字段, ...ChildrenorderBy(boolean condition, boolean isAsc, R column)排序:ORDER BY 字段, ...ChildrenorderBy(boolean condition, boolean isAsc, R column, R... columns)排序:ORDER BY 字段, ...ChildrensetEntity(T entity)ChildrensetEntityClass(java.lang.Class<T> entityClass)ChildrensetParamAlias(java.lang.String paramAlias)参数别名设置,初始化时优先设置该值、重复设置异常-
从类继承的方法 com.baomidou.mybatisplus.core.conditions.Wrapper
getCustomSqlSegment, getSqlSelect, getSqlSet, getTargetSql, isEmptyOfEntity, isEmptyOfNormal, isEmptyOfWhere, nonEmptyOfEntity, nonEmptyOfNormal, nonEmptyOfWhere
-
从类继承的方法 java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
从接口继承的方法 com.baomidou.mybatisplus.core.conditions.interfaces.Compare
allEq, allEq, allEq, allEq, between, eq, ge, gt, le, like, likeLeft, likeRight, lt, ne, notBetween, notLike
-
从接口继承的方法 com.baomidou.mybatisplus.core.conditions.interfaces.Func
func, geSql, groupBy, groupBy, groupBy, gtSql, having, in, in, inSql, isNotNull, isNull, leSql, ltSql, notIn, notIn, notInSql, orderByAsc, orderByAsc, orderByAsc, orderByAsc, orderByAsc, orderByAsc, orderByDesc, orderByDesc, orderByDesc, orderByDesc, orderByDesc, orderByDesc
-
-
-
-
字段详细资料
-
typedThis
protected final Children extends AbstractWrapper<T,R,Children> typedThis
占位符
-
paramNameSeq
protected java.util.concurrent.atomic.AtomicInteger paramNameSeq
必要度量
-
paramNameValuePairs
protected java.util.Map<java.lang.String,java.lang.Object> paramNameValuePairs
-
paramAlias
protected SharedString paramAlias
其他
-
lastSql
protected SharedString lastSql
-
sqlComment
protected SharedString sqlComment
SQL注释
-
sqlFirst
protected SharedString sqlFirst
SQL起始语句
-
expression
protected MergeSegments expression
-
-
方法详细资料
-
getEntityClass
public java.lang.Class<T> getEntityClass()
-
allEq
public <V> Children allEq(boolean condition, java.util.Map<R,V> params, boolean null2IsNull)
从接口复制的说明:Comparemap 所有非空属性等于 =
-
allEq
public <V> Children allEq(boolean condition, java.util.function.BiPredicate<R,V> filter, java.util.Map<R,V> params, boolean null2IsNull)
从接口复制的说明:Compare字段过滤接口,传入多参数时允许对参数进行过滤
-
like
public Children like(boolean condition, R column, java.lang.Object val)
从接口复制的说明:CompareLIKE '%值%'
-
notLike
public Children notLike(boolean condition, R column, java.lang.Object val)
从接口复制的说明:CompareNOT LIKE '%值%'
-
likeLeft
public Children likeLeft(boolean condition, R column, java.lang.Object val)
从接口复制的说明:CompareLIKE '%值'
-
likeRight
public Children likeRight(boolean condition, R column, java.lang.Object val)
从接口复制的说明:CompareLIKE '值%'
-
between
public Children between(boolean condition, R column, java.lang.Object val1, java.lang.Object val2)
从接口复制的说明:CompareBETWEEN 值1 AND 值2
-
notBetween
public Children notBetween(boolean condition, R column, java.lang.Object val1, java.lang.Object val2)
从接口复制的说明:CompareNOT BETWEEN 值1 AND 值2- 指定者:
notBetween在接口中Compare<T,R>- 参数:
condition- 执行条件column- 字段val1- 值1val2- 值2- 返回:
- children
-
and
public Children and(boolean condition, java.util.function.Consumer<Children> consumer)
从接口复制的说明:NestedAND 嵌套例: and(i -> i.eq("name", "李白").ne("status", "活着"))
-
or
public Children or(boolean condition, java.util.function.Consumer<Children> consumer)
从接口复制的说明:NestedOR 嵌套例: or(i -> i.eq("name", "李白").ne("status", "活着"))
-
nested
public Children nested(boolean condition, java.util.function.Consumer<Children> consumer)
从接口复制的说明:Nested正常嵌套 不带 AND 或者 OR例: nested(i -> i.eq("name", "李白").ne("status", "活着"))
-
not
public Children not(boolean condition, java.util.function.Consumer<Children> consumer)
从接口复制的说明:Nestednot嵌套例: not(i -> i.eq("name", "李白").ne("status", "活着"))
-
apply
public Children apply(boolean condition, java.lang.String applySql, java.lang.Object... values)
从接口复制的说明:Join拼接 sql!! 会有 sql 注入风险 !!
例1: apply("id = 1")
例2: apply("date_format(dateColumn,'%Y-%m-%d') = '2008-08-08'")
例3: apply("date_format(dateColumn,'%Y-%m-%d') = {0}", LocalDate.now())
-
last
public Children last(boolean condition, java.lang.String lastSql)
从接口复制的说明:Join无视优化规则直接拼接到 sql 的最后(有sql注入的风险,请谨慎使用)例: last("limit 1")
注意只能调用一次,多次调用以最后一次为准
-
comment
public Children comment(boolean condition, java.lang.String comment)
从接口复制的说明:Joinsql 注释(会拼接在 sql 的最后面)
-
first
public Children first(boolean condition, java.lang.String firstSql)
从接口复制的说明:Joinsql 起始句(会拼接在SQL语句的起始处)
-
exists
public Children exists(boolean condition, java.lang.String existsSql, java.lang.Object... values)
从接口复制的说明:Join拼接 EXISTS ( sql语句 )!! sql 注入方法 !!
例: exists("select id from table where age = 1")
-
notExists
public Children notExists(boolean condition, java.lang.String existsSql, java.lang.Object... values)
从接口复制的说明:Join拼接 NOT EXISTS ( sql语句 )!! sql 注入方法 !!
例: notExists("select id from table where age = 1")
-
isNull
public Children isNull(boolean condition, R column)
从接口复制的说明:Func字段 IS NULL例: isNull("name")
-
isNotNull
public Children isNotNull(boolean condition, R column)
从接口复制的说明:Func字段 IS NOT NULL例: isNotNull("name")
-
in
public Children in(boolean condition, R column, java.util.Collection<?> coll)
从接口复制的说明:Func字段 IN (value.get(0), value.get(1), ...)例: in("id", Arrays.asList(1, 2, 3, 4, 5))
- 注意!集合为空若存在逻辑错误,请在 condition 条件中判断
- 如果集合为 empty 则不会进行 sql 拼接
-
in
public Children in(boolean condition, R column, java.lang.Object... values)
从接口复制的说明:Func字段 IN (v0, v1, ...)例: in("id", 1, 2, 3, 4, 5)
- 注意!数组为空若存在逻辑错误,请在 condition 条件中判断
- 如果动态数组为 empty 则不会进行 sql 拼接
-
notIn
public Children notIn(boolean condition, R column, java.util.Collection<?> coll)
从接口复制的说明:Func字段 NOT IN (value.get(0), value.get(1), ...)例: notIn("id", Arrays.asList(1, 2, 3, 4, 5))
-
notIn
public Children notIn(boolean condition, R column, java.lang.Object... values)
从接口复制的说明:Func字段 NOT IN (v0, v1, ...)例: notIn("id", 1, 2, 3, 4, 5)
-
inSql
public Children inSql(boolean condition, R column, java.lang.String inValue)
从接口复制的说明:Func字段 IN ( sql语句 )!! sql 注入方式的 in 方法 !!
例1: inSql("id", "1, 2, 3, 4, 5, 6")
例2: inSql("id", "select id from table where id < 3")
-
gtSql
public Children gtSql(boolean condition, R column, java.lang.String inValue)
从接口复制的说明:Func字段 > ( sql语句 )例1: gtSql("id", "1, 2, 3, 4, 5, 6")
例1: gtSql("id", "select id from table where name = 'JunJun'")
-
geSql
public Children geSql(boolean condition, R column, java.lang.String inValue)
从接口复制的说明:Func字段 >= ( sql语句 )例1: geSql("id", "1, 2, 3, 4, 5, 6")
例1: geSql("id", "select id from table where name = 'JunJun'")
-
ltSql
public Children ltSql(boolean condition, R column, java.lang.String inValue)
从接口复制的说明:Func字段 < ( sql语句 )例1: ltSql("id", "1, 2, 3, 4, 5, 6")
例1: ltSql("id", "select id from table where name = 'JunJun'")
-
leSql
public Children leSql(boolean condition, R column, java.lang.String inValue)
从接口复制的说明:Func字段 <= ( sql语句 )例1: leSql("id", "1, 2, 3, 4, 5, 6")
例1: leSql("id", "select id from table where name = 'JunJun'")
-
notInSql
public Children notInSql(boolean condition, R column, java.lang.String inValue)
从接口复制的说明:Func字段 NOT IN ( sql语句 )!! sql 注入方式的 not in 方法 !!
例1: notInSql("id", "1, 2, 3, 4, 5, 6")
例2: notInSql("id", "select id from table where id < 3")
-
groupBy
public Children groupBy(boolean condition, R column, R... columns)
从接口复制的说明:Func分组:GROUP BY 字段, ...
-
orderBy
@SafeVarargs public final Children orderBy(boolean condition, boolean isAsc, R column, R... columns)
从接口复制的说明:Func排序:ORDER BY 字段, ...
-
groupBy
public Children groupBy(boolean condition, R column)
从接口复制的说明:Func分组:GROUP BY 字段, ...例: groupBy("id")
-
groupBy
public Children groupBy(boolean condition, java.util.List<R> columns)
从接口复制的说明:Func分组:GROUP BY 字段, ...例: groupBy(Arrays.asList("id", "name"))
-
orderBy
public Children orderBy(boolean condition, boolean isAsc, R column)
从接口复制的说明:Func排序:ORDER BY 字段, ...例: orderBy(true, "id")
-
orderBy
public Children orderBy(boolean condition, boolean isAsc, java.util.List<R> columns)
从接口复制的说明:Func排序:ORDER BY 字段, ...例: orderBy(true, Arrays.asList("id", "name"))
-
columnSqlInjectFilter
protected R columnSqlInjectFilter(R column)
字段 SQL 注入过滤处理,子类重写实现过滤逻辑- 参数:
column- 字段内容- 返回:
-
having
public Children having(boolean condition, java.lang.String sqlHaving, java.lang.Object... params)
从接口复制的说明:FuncHAVING ( sql语句 )例1: having("sum(age) > 10")
例2: having("sum(age) > {0}", 10)
-
func
public Children func(boolean condition, java.util.function.Consumer<Children> consumer)
从接口复制的说明:Func消费函数
-
not
protected Children not(boolean condition)
内部自用NOT 关键词
-
and
protected Children and(boolean condition)
内部自用拼接 AND
-
likeValue
protected Children likeValue(boolean condition, SqlKeyword keyword, R column, java.lang.Object val, SqlLike sqlLike)
内部自用拼接 LIKE 以及 值
-
addCondition
protected Children addCondition(boolean condition, R column, SqlKeyword sqlKeyword, java.lang.Object val)
普通查询条件- 参数:
condition- 是否执行column- 属性sqlKeyword- SQL 关键词val- 条件值
-
addNestedCondition
protected Children addNestedCondition(boolean condition, java.util.function.Consumer<Children> consumer)
多重嵌套查询条件- 参数:
condition- 查询条件值
-
instance
protected abstract Children instance()
子类返回一个自己的新对象
-
formatSqlMaybeWithParam
protected final java.lang.String formatSqlMaybeWithParam(java.lang.String sqlStr, java.lang.String mapping, java.lang.Object... params)格式化 sql支持 "{0}" 这种,或者 "sql {0} sql" 这种
- 参数:
sqlStr- 可能是sql片段mapping- 例如: "javaType=int,jdbcType=NUMERIC,typeHandler=xxx.xxx.MyTypeHandler" 这种params- 参数- 返回:
- sql片段
-
formatParam
protected final java.lang.String formatParam(java.lang.String mapping, java.lang.Object param)处理入参- 参数:
mapping- 例如: "javaType=int,jdbcType=NUMERIC,typeHandler=xxx.xxx.MyTypeHandler" 这种param- 参数- 返回:
- value
-
maybeDo
protected final Children maybeDo(boolean condition, AbstractWrapper.DoSomething something)
函数化的做事- 参数:
condition- 做不做something- 做什么- 返回:
- Children
-
inExpression
protected ISqlSegment inExpression(java.util.Collection<?> value)
获取in表达式 包含括号- 参数:
value- 集合
-
inExpression
protected ISqlSegment inExpression(java.lang.Object[] values)
获取in表达式 包含括号- 参数:
values- 数组
-
initNeed
protected void initNeed()
必要的初始化
-
appendSqlSegments
protected void appendSqlSegments(ISqlSegment... sqlSegments)
添加 where 片段- 参数:
sqlSegments- ISqlSegment 数组
-
isUseAnnotationOrderBy
public boolean isUseAnnotationOrderBy()
是否使用默认注解OrderBy排序- 返回:
- true 使用 false 不使用
-
getSqlSegment
public java.lang.String getSqlSegment()
从接口复制的说明:ISqlSegmentSQL 片段- 指定者:
getSqlSegment在接口中ISqlSegment
-
getSqlComment
public java.lang.String getSqlComment()
- 覆盖:
getSqlComment在类中Wrapper<T>
-
getSqlFirst
public java.lang.String getSqlFirst()
- 覆盖:
getSqlFirst在类中Wrapper<T>
-
getExpression
public MergeSegments getExpression()
从类复制的说明:Wrapper获取 MergeSegments- 指定者:
getExpression在类中Wrapper<T>
-
getParamNameValuePairs
public java.util.Map<java.lang.String,java.lang.Object> getParamNameValuePairs()
-
getParamAlias
public java.lang.String getParamAlias()
-
setParamAlias
public Children setParamAlias(java.lang.String paramAlias)
参数别名设置,初始化时优先设置该值、重复设置异常- 参数:
paramAlias- 参数别名- 返回:
- Children
-
columnToSqlSegment
protected final ISqlSegment columnToSqlSegment(R column)
获取 columnName
-
columnToString
protected java.lang.String columnToString(R column)
获取 columnName
-
columnsToString
protected java.lang.String columnsToString(R... columns)
获取 columnNames
-
columnsToString
protected java.lang.String columnsToString(java.util.List<R> columns)
多字段转换为逗号 "," 分割字符串- 参数:
columns- 多字段
-
clone
public Children clone()
- 覆盖:
clone在类中java.lang.Object
-
-