public abstract class AbstractWrapper<T,R,This extends AbstractWrapper<T,R,This>> extends Wrapper<T> implements Compare<This,R>, Nested<This>, Join<This>, Func<This,R>
查询条件封装
| 限定符和类型 | 字段和说明 |
|---|---|
protected T |
entity
数据库表映射实体类
|
protected java.lang.Class<T> |
entityClass
实体类型
|
protected MergeSegments |
expression |
protected java.lang.String |
lastSql |
protected java.lang.String |
paramAlias |
protected java.util.concurrent.atomic.AtomicInteger |
paramNameSeq
必要度量
|
protected java.util.Map<java.lang.String,java.lang.Object> |
paramNameValuePairs |
protected This |
typedThis |
| 构造器和说明 |
|---|
AbstractWrapper() |
| 限定符和类型 | 方法和说明 |
|---|---|
protected This |
addCondition(boolean condition,
R column,
SqlKeyword sqlKeyword,
java.lang.Object val)
普通查询条件
|
protected This |
addNestedCondition(boolean condition,
java.util.function.Function<This,This> func)
多重嵌套查询条件
|
<V> This |
allEq(boolean condition,
java.util.function.BiPredicate<R,V> filter,
java.util.Map<R,V> params,
boolean null2IsNull)
字段过滤接口,传入多参数时允许对参数进行过滤
|
<V> This |
allEq(boolean condition,
java.util.Map<R,V> params,
boolean null2IsNull)
map 所有非空属性等于 =
|
protected This |
and(boolean condition)
内部自用
拼接 AND
|
This |
and(boolean condition,
java.util.function.Function<This,This> func)
AND 嵌套
例: and(i -> i.eq("name", "李白").ne("status", "活着"))
|
This |
apply(boolean condition,
java.lang.String applySql,
java.lang.Object... value)
!!
|
This |
between(boolean condition,
R column,
java.lang.Object val1,
java.lang.Object val2)
BETWEEN 值1 AND 值2
|
This |
clone() |
protected java.lang.String |
columnsToString(R... columns)
多字段转换为逗号 "," 分割字符串
|
protected abstract java.lang.String |
columnToString(R column)
获取 columnName
|
protected This |
doIt(boolean condition,
ISqlSegment... sqlSegments)
对sql片段进行组装
|
This |
eq(boolean condition,
R column,
java.lang.Object val)
等于 =
|
This |
exists(boolean condition,
java.lang.String existsSql)
!!
|
protected java.lang.String |
formatSql(java.lang.String sqlStr,
java.lang.Object... params)
格式化SQL
|
protected java.lang.String |
formatSqlIfNeed(boolean need,
java.lang.String sqlStr,
java.lang.Object... params)
根据需要格式化SQL
Format SQL for methods: EntityQ |
This |
ge(boolean condition,
R column,
java.lang.Object val)
大于等于 >=
|
protected java.lang.Class<T> |
getCheckEntityClass() |
T |
getEntity()
实体对象(子类实现)
|
MergeSegments |
getExpression()
获取 MergeSegments
|
java.lang.String |
getParamAlias() |
java.util.Map<java.lang.String,java.lang.Object> |
getParamNameValuePairs() |
java.lang.String |
getSqlSegment()
SQL 片段
|
This |
groupBy(boolean condition,
R... columns)
分组:GROUP BY 字段, ...
|
This |
gt(boolean condition,
R column,
java.lang.Object val)
大于 >
|
This |
having(boolean condition,
java.lang.String sqlHaving,
java.lang.Object... params)
HAVING ( sql语句 )
例1: having("sum(age) > 10")
例2: having("sum(age) > {0}", 10)
|
This |
in(boolean condition,
R column,
java.util.Collection<?> value)
字段 IN (value.get(0), value.get(1), ...)
|
protected void |
initEntityClass() |
protected void |
initNeed()
必要的初始化
|
This |
inSql(boolean condition,
R column,
java.lang.String inValue)
字段 IN ( sql语句 )
!!
|
protected abstract This |
instance(java.util.concurrent.atomic.AtomicInteger paramNameSeq,
java.util.Map<java.lang.String,java.lang.Object> paramNameValuePairs)
子类返回一个自己的新对象
|
This |
isNotNull(boolean condition,
R column)
字段 IS NOT NULL
例: isNotNull("name")
|
This |
isNull(boolean condition,
R column)
字段 IS NULL
例: isNull("name")
|
This |
last(boolean condition,
java.lang.String lastSql)
无视优化规则直接拼接到 sql 的最后(有sql注入的风险,请谨慎使用)
例: last("limit 1")
注意只能调用一次,多次调用以最后一次为准
|
This |
le(boolean condition,
R column,
java.lang.Object val)
小于等于 <=
|
This |
like(boolean condition,
R column,
java.lang.Object val)
LIKE '%值%'
|
This |
likeLeft(boolean condition,
R column,
java.lang.Object val)
LIKE '%值'
|
This |
likeRight(boolean condition,
R column,
java.lang.Object val)
LIKE '值%'
|
This |
lt(boolean condition,
R column,
java.lang.Object val)
小于 <
|
This |
ne(boolean condition,
R column,
java.lang.Object val)
不等于 <>
|
This |
nested(boolean condition,
java.util.function.Function<This,This> func)
正常嵌套 不带 AND 或者 OR
例: nested(i -> i.eq("name", "李白").ne("status", "活着"))
|
protected This |
not(boolean condition)
内部自用
NOT 关键词
|
This |
notBetween(boolean condition,
R column,
java.lang.Object val1,
java.lang.Object val2)
NOT BETWEEN 值1 AND 值2
|
This |
notExists(boolean condition,
java.lang.String notExistsSql)
!!
|
This |
notIn(boolean condition,
R column,
java.util.Collection<?> value)
字段 NOT IN (value.get(0), value.get(1), ...)
|
This |
notInSql(boolean condition,
R column,
java.lang.String inValue)
字段 NOT IN ( sql语句 )
!!
|
This |
notLike(boolean condition,
R column,
java.lang.Object val)
NOT LIKE '%值%'
|
This |
or(boolean condition)
拼接 OR
|
This |
or(boolean condition,
java.util.function.Function<This,This> func)
OR 嵌套
例: or(i -> i.eq("name", "李白").ne("status", "活着"))
|
This |
orderBy(boolean condition,
boolean isAsc,
R... columns)
排序:ORDER BY 字段, ...
|
This |
setEntity(T entity) |
getSqlSelect, getSqlSet, isEmptyOfWhere, notEmptyOfWhereequals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitallEq, allEq, allEq, allEq, between, eq, ge, gt, le, like, likeLeft, likeRight, lt, ne, notBetween, notLikeapply, exists, last, notExists, orgroupBy, having, in, in, in, inSql, isNotNull, isNull, notIn, notIn, notIn, notInSql, orderByAsc, orderByAsc, orderByDesc, orderByDescprotected final This extends AbstractWrapper<T,R,This> typedThis
protected java.util.concurrent.atomic.AtomicInteger paramNameSeq
protected java.util.Map<java.lang.String,java.lang.Object> paramNameValuePairs
protected java.lang.String paramAlias
protected java.lang.String lastSql
protected T entity
protected MergeSegments expression
protected java.lang.Class<T> entityClass
protected void initEntityClass()
protected java.lang.Class<T> getCheckEntityClass()
public <V> This allEq(boolean condition, java.util.Map<R,V> params, boolean null2IsNull)
Comparepublic <V> This allEq(boolean condition, java.util.function.BiPredicate<R,V> filter, java.util.Map<R,V> params, boolean null2IsNull)
Comparepublic This like(boolean condition, R column, java.lang.Object val)
Comparepublic This notLike(boolean condition, R column, java.lang.Object val)
Comparepublic This likeLeft(boolean condition, R column, java.lang.Object val)
Comparepublic This likeRight(boolean condition, R column, java.lang.Object val)
Comparepublic This between(boolean condition, R column, java.lang.Object val1, java.lang.Object val2)
Comparepublic This notBetween(boolean condition, R column, java.lang.Object val1, java.lang.Object val2)
ComparenotBetween 在接口中 Compare<This extends AbstractWrapper<T,R,This>,R>condition - 执行条件public This and(boolean condition, java.util.function.Function<This,This> func)
Nestedpublic This or(boolean condition, java.util.function.Function<This,This> func)
Nestedpublic This nested(boolean condition, java.util.function.Function<This,This> func)
Nestedpublic This apply(boolean condition, java.lang.String applySql, java.lang.Object... value)
Joinpublic This last(boolean condition, java.lang.String lastSql)
Joinpublic This exists(boolean condition, java.lang.String existsSql)
Joinpublic This notExists(boolean condition, java.lang.String notExistsSql)
Joinpublic This isNotNull(boolean condition, R column)
Funcpublic This in(boolean condition, R column, java.util.Collection<?> value)
Funcpublic This notIn(boolean condition, R column, java.util.Collection<?> value)
Funcpublic This inSql(boolean condition, R column, java.lang.String inValue)
Funcpublic This notInSql(boolean condition, R column, java.lang.String inValue)
Funcpublic This groupBy(boolean condition, R... columns)
Funcpublic This orderBy(boolean condition, boolean isAsc, R... columns)
Funcpublic This having(boolean condition, java.lang.String sqlHaving, java.lang.Object... params)
Funcprotected This not(boolean condition)
内部自用
NOT 关键词protected This and(boolean condition)
内部自用
拼接 ANDprotected This addCondition(boolean condition, R column, SqlKeyword sqlKeyword, java.lang.Object val)
普通查询条件
condition - 是否执行column - 属性sqlKeyword - SQL 关键词val - 条件值protected This addNestedCondition(boolean condition, java.util.function.Function<This,This> func)
多重嵌套查询条件
condition - 查询条件值protected abstract This instance(java.util.concurrent.atomic.AtomicInteger paramNameSeq, java.util.Map<java.lang.String,java.lang.Object> paramNameValuePairs)
protected final java.lang.String formatSql(java.lang.String sqlStr,
java.lang.Object... params)
格式化SQL
sqlStr - SQL语句部分params - 参数集protected final java.lang.String formatSqlIfNeed(boolean need,
java.lang.String sqlStr,
java.lang.Object... params)
根据需要格式化SQL
Format SQL for methods: EntityQ
ew.where("sample_name={0}", "haha").and("sample_age >{0}
and sample_age<{1}", 18, 30) TO
sample_name=#{MPGENVAL1} and sample_age>#{MPGENVAL2} and
sample_age<#{MPGENVAL3}
need - 是否需要格式化sqlStr - SQL语句部分params - 参数集protected final void initNeed()
protected This doIt(boolean condition, ISqlSegment... sqlSegments)
对sql片段进行组装
condition - 是否执行sqlSegments - sql片段数组public java.lang.String getParamAlias()
public java.lang.String getSqlSegment()
ISqlSegmentgetSqlSegment 在接口中 ISqlSegmentpublic MergeSegments getExpression()
WrappergetExpression 在类中 Wrapper<T>public java.util.Map<java.lang.String,java.lang.Object> getParamNameValuePairs()
protected java.lang.String columnsToString(R... columns)
多字段转换为逗号 "," 分割字符串
columns - 多字段protected abstract java.lang.String columnToString(R column)
public This clone()
clone 在类中 java.lang.Object