public class DbQueryBuilderDecoration
extends DbQueryBuilderAction
sql构建器 -- 修饰子句: 由修饰词where/group by/order by/limit来构建的子句
| 限定符和类型 | 类和说明 |
|---|---|
static class |
DbQueryBuilderDecoration.Companion |
IDbQueryBuilderQuoter.DefaultImplsIDbQueryBuilderAction.DefaultImplsIDbQueryBuilderDecoration.DefaultImpls| 限定符和类型 | 字段和说明 |
|---|---|
static DbQueryBuilderDecoration.Companion |
Companion |
| 构造器和说明 |
|---|
DbQueryBuilderDecoration()
sql构建器 -- 修饰子句: 由修饰词where/group by/order by/limit来构建的子句
|
| 限定符和类型 | 方法和说明 |
|---|---|
IDbQueryBuilder |
andHaving(java.lang.String column,
java.lang.String op,
java.lang.Object value)
Creates a new "AND HAVING" condition for the query.
|
IDbQueryBuilder |
andHavingClose()
Closes an open "AND HAVING (...)" grouping.
|
IDbQueryBuilder |
andHavingCondition(java.lang.String condition,
java.util.List<?> params)
Creates a new "AND HAVING" condition for the query.
|
IDbQueryBuilder |
andHavingOpen()
Opens a new "AND HAVING (...)" grouping.
|
IDbQueryBuilder |
andWhere(java.lang.String column,
java.lang.String op,
java.lang.Object value)
Creates a new "AND WHERE" condition for the query.
|
IDbQueryBuilder |
andWhereClose()
Closes an open "WHERE (...)" grouping.
|
IDbQueryBuilder |
andWhereCondition(java.lang.String condition,
java.util.List<?> params)
Creates a new "AND WHERE" condition for the query.
|
IDbQueryBuilder |
andWhereOpen()
Opens a new "AND WHERE (...)" grouping.
|
IDbQueryBuilder |
clear()
清空条件
|
java.lang.Object |
clone()
克隆对象
|
IDbQueryBuilder |
compileDecoration(IDb db,
java.lang.StringBuilder sql)
编译修饰子句
|
void |
compileLimit(IDb db,
java.lang.StringBuilder sql)
编译limit表达式
|
IDbQueryBuilder |
forUpdate(boolean value)
设置查询加锁
|
boolean |
getForUpdate()
select语句中, 控制查询加锁
|
DbQueryPart<?> |
getGroupByClause()
group by子句
字段数组
|
DbQueryPart<?> |
getHavingClause()
having子句
条件数组, 每个条件 = 字段名 + 运算符 + 字段值
|
DbLimit |
getLimitParams()
limit参数: limit + offset
为了兼容不同db的特殊的limit语法,不使用 DbQueryPartSimple("LIMIT", arrayOf(null));
直接硬编码
|
DbQueryPart<?> |
getOrderByClause()
order by子句
排序数组, 每个排序 = 字段+方向
|
DbQueryPart<T>[] |
getParts()
where/group by/having/order by/limit子句的数组
where/group by/having/ordery by/limit 按顺序编译sql,否则sql无效
因此不能用map, 而用array中有序,下标=DecorationPartType枚举的序号
|
DbQueryPart<?> |
getWhereClause()
where子句
条件数组, 每个条件 = 字段名 + 运算符 + 字段值
|
IDbQueryBuilder |
groupBy(java.lang.String column)
Creates a "GROUP BY ..." filter.
|
IDbQueryBuilder |
having(java.lang.String column,
java.lang.Object value)
Alias of andHaving()
|
IDbQueryBuilder |
limit(int limit,
int offset)
Return up to "LIMIT ..." results
|
IDbQueryBuilder |
orHaving(java.lang.String column,
java.lang.Object value)
Alias of andHaving()
|
IDbQueryBuilder |
orHaving(java.lang.String column,
java.lang.String op,
java.lang.Object value)
Creates a new "OR HAVING" condition for the query.
|
IDbQueryBuilder |
orHavingClose()
Closes an open "OR HAVING (...)" grouping.
|
IDbQueryBuilder |
orHavingCondition(java.lang.String condition,
java.util.List<?> params)
Creates a new "OR HAVING" condition for the query.
|
IDbQueryBuilder |
orHavingOpen()
Opens a new "OR HAVING (...)" grouping.
|
IDbQueryBuilder |
orWhere(java.lang.String column,
java.lang.Object value)
Creates a new "OR WHERE" condition for the query.
|
IDbQueryBuilder |
orWhere(java.lang.String column,
java.lang.String op,
java.lang.Object value)
Creates a new "OR WHERE" condition for the query.
|
IDbQueryBuilder |
orWhereClose()
Closes an open "WHERE (...)" grouping.
|
IDbQueryBuilder |
orWhereCondition(java.lang.String condition,
java.util.List<?> params)
Creates a new "OR WHERE" condition for the query.
|
IDbQueryBuilder |
orWhereExists(IDbQueryBuilder subquery)
Creates a new "WHERE EXISTS" condition for the query.
|
IDbQueryBuilder |
orWhereOpen()
Opens a new "OR WHERE (...)" grouping.
|
IDbQueryBuilder |
orderBy(java.lang.String column,
java.lang.String direction)
Applies sorting with "ORDER BY ..."
|
java.lang.String |
prepareOperator(java.lang.String column,
java.lang.String op,
java.lang.Object value)
Prepare operator
|
void |
setForUpdate(boolean p)
select语句中, 控制查询加锁
|
void |
setLimitParams(DbLimit p)
limit参数: limit + offset
为了兼容不同db的特殊的limit语法,不使用 DbQueryPartSimple("LIMIT", arrayOf(null));
直接硬编码
|
boolean |
trySplitColumn(java.lang.String column,
java.lang.String op,
java.lang.Object value,
boolean and,
boolean where,
boolean outAnd)
尝试根据分隔符 |(或) 与 &(与) 来分割(字段)子条件
多个字段使用相同查询条件
|
boolean |
trySplitInParams(java.lang.String column,
java.lang.String op,
java.lang.Object value,
boolean where,
boolean and)
尝试拆分in参数
|
boolean |
trySplitWhere(java.lang.String column,
java.lang.String op,
java.lang.Object value,
boolean where,
boolean and)
拆分in参数
|
IDbQueryBuilder |
whav(java.lang.String column,
java.lang.String op,
java.lang.Object value,
boolean where,
boolean and)
兼容 andWhere()/orWhere()/andHaving()/orHaving()
|
IDbQueryBuilder |
whavClose(boolean where)
兼容 andWhereClose()/orWhereClose()/andHavingClose()/orHavingClose()
|
IDbQueryBuilder |
whavOpen(boolean where,
boolean and)
兼容 andWhereOpen()/orWhereOpen()/andHavingOpen()/orHavingOpen()
|
IDbQueryBuilder |
where(java.lang.String column,
java.lang.Object value)
Alias of andWhere()
|
IDbQueryBuilder |
whereExists(IDbQueryBuilder subquery)
Creates a new "OR WHERE EXISTS" condition for the query.
|
clear, clone, compileAction, copy, distinct, fillDelTables, from, getAction, getDistinct, getInsertRows, getJoinParts, getJoinTables, getManipulatedData, getSelectColumns, getTable, getTableAlias, getUpdateRow, insertColumns, join, on, on, select, select, selects, set, set, setAction, setDistinct, setTable, sets, splitOperator, value, value, valuesclear, clone, getCompiledSql, quoteSingleValue, quoteSubQuery, setCompiledSqlandWhereWrap, batchDelete, batchExecute, batchInsert, batchUpdate, charAt, clone, compile, compileCount, compileDelete, compileInsert, compileSelect, compileSelectOne, compileUpdate, copy, count, delete, execute, fastFindPageBySubquery, fastFindPageMaps, from, from, get, getLength, groupBys, groupBys, having, havingClose, havingCondition, havingOpen, havings, incr, insert, length, ons, orWhereBetween, orWhereLike, orWhereWrap, orderBy, orderBys, orderBys, quote, quoteColumn, quoteColumnOrValue, quoteTable, selectDistinct, subSequence, sum, table, update, where, whereBetween, whereClose, whereCondition, whereLike, whereOpen, whereWrap, wheres, wheresclone, findColumn, findEntities, findEntities, findEntities, findEntity, findEntity, findEntity, findMap, findMaps, findModel, findModel, findModel, findModels, findModels, findModels, findResult, findRow, findRows, findValue, getDefaultDbquote, quoteColumn, quoteColumnOrValue, quoteSingleValue, quoteSubQuery, quoteTableclear, compileAction, distinct, from, from, from, getTableAlias, insertColumns, join, on, on, ons, select, select, selectDistinct, selects, set, set, sets, table, value, value, valuesandHaving, andHavingClose, andHavingCondition, andHavingOpen, andWhere, andWhereClose, andWhereCondition, andWhereOpen, andWhereWrap, compileDecoration, forUpdate, groupBy, groupBys, groupBys, having, having, havingClose, havingCondition, havingOpen, havings, limit, orHaving, orHaving, orHavingClose, orHavingCondition, orHavingOpen, orWhere, orWhere, orWhereBetween, orWhereClose, orWhereCondition, orWhereExists, orWhereLike, orWhereOpen, orWhereWrap, orderBy, orderBy, orderBys, orderBys, where, where, whereBetween, whereClose, whereCondition, whereExists, whereLike, whereOpen, whereWrap, wheres, wherespublic static DbQueryBuilderDecoration.Companion Companion
public DbQueryBuilderDecoration()
sql构建器 -- 修饰子句: 由修饰词where/group by/order by/limit来构建的子句
public DbQueryPart<T>[] getParts()
where/group by/having/order by/limit子句的数组 where/group by/having/ordery by/limit 按顺序编译sql,否则sql无效 因此不能用map, 而用array中有序,下标=DecorationPartType枚举的序号
public DbQueryPart<?> getWhereClause()
where子句 条件数组, 每个条件 = 字段名 + 运算符 + 字段值
public DbQueryPart<?> getGroupByClause()
group by子句 字段数组
public DbQueryPart<?> getHavingClause()
having子句 条件数组, 每个条件 = 字段名 + 运算符 + 字段值
public DbQueryPart<?> getOrderByClause()
order by子句 排序数组, 每个排序 = 字段+方向
public DbLimit getLimitParams()
limit参数: limit + offset 为了兼容不同db的特殊的limit语法,不使用 DbQueryPartSimple("LIMIT", arrayOf(null)); 直接硬编码
public void setLimitParams(DbLimit p)
limit参数: limit + offset 为了兼容不同db的特殊的limit语法,不使用 DbQueryPartSimple("LIMIT", arrayOf(null)); 直接硬编码
public boolean getForUpdate()
select语句中, 控制查询加锁
public void setForUpdate(boolean p)
select语句中, 控制查询加锁
public IDbQueryBuilder forUpdate(boolean value)
设置查询加锁
public void compileLimit(IDb db, java.lang.StringBuilder sql)
编译limit表达式
public IDbQueryBuilder compileDecoration(IDb db, java.lang.StringBuilder sql)
编译修饰子句
public IDbQueryBuilder clear()
清空条件
public java.lang.Object clone()
克隆对象
public IDbQueryBuilder where(java.lang.String column, java.lang.Object value)
Alias of andWhere()
public IDbQueryBuilder orWhere(java.lang.String column, java.lang.Object value)
Creates a new "OR WHERE" condition for the query.
public IDbQueryBuilder andWhere(java.lang.String column, java.lang.String op, java.lang.Object value)
Creates a new "AND WHERE" condition for the query.
public IDbQueryBuilder orWhere(java.lang.String column, java.lang.String op, java.lang.Object value)
Creates a new "OR WHERE" condition for the query.
public IDbQueryBuilder whav(java.lang.String column, java.lang.String op, java.lang.Object value, boolean where, boolean and)
兼容 andWhere()/orWhere()/andHaving()/orHaving()
public boolean trySplitWhere(java.lang.String column,
java.lang.String op,
java.lang.Object value,
boolean where,
boolean and)
拆分in参数
public boolean trySplitColumn(java.lang.String column,
java.lang.String op,
java.lang.Object value,
boolean and,
boolean where,
boolean outAnd)
尝试根据分隔符 |(或) 与 &(与) 来分割(字段)子条件 多个字段使用相同查询条件
public boolean trySplitInParams(java.lang.String column,
java.lang.String op,
java.lang.Object value,
boolean where,
boolean and)
尝试拆分in参数
public java.lang.String prepareOperator(java.lang.String column,
java.lang.String op,
java.lang.Object value)
Prepare operator
public IDbQueryBuilder andWhereCondition(java.lang.String condition, java.util.List<?> params)
Creates a new "AND WHERE" condition for the query.
public IDbQueryBuilder orWhereCondition(java.lang.String condition, java.util.List<?> params)
Creates a new "OR WHERE" condition for the query.
public IDbQueryBuilder whereExists(IDbQueryBuilder subquery)
Creates a new "OR WHERE EXISTS" condition for the query.
public IDbQueryBuilder orWhereExists(IDbQueryBuilder subquery)
Creates a new "WHERE EXISTS" condition for the query.
public IDbQueryBuilder andWhereOpen()
Opens a new "AND WHERE (...)" grouping.
public IDbQueryBuilder orWhereOpen()
Opens a new "OR WHERE (...)" grouping.
public IDbQueryBuilder whavOpen(boolean where, boolean and)
兼容 andWhereOpen()/orWhereOpen()/andHavingOpen()/orHavingOpen()
public IDbQueryBuilder andWhereClose()
Closes an open "WHERE (...)" grouping.
public IDbQueryBuilder orWhereClose()
Closes an open "WHERE (...)" grouping.
public IDbQueryBuilder whavClose(boolean where)
兼容 andWhereClose()/orWhereClose()/andHavingClose()/orHavingClose()
public IDbQueryBuilder groupBy(java.lang.String column)
Creates a "GROUP BY ..." filter.
public IDbQueryBuilder having(java.lang.String column, java.lang.Object value)
Alias of andHaving()
public IDbQueryBuilder orHaving(java.lang.String column, java.lang.Object value)
Alias of andHaving()
public IDbQueryBuilder andHaving(java.lang.String column, java.lang.String op, java.lang.Object value)
Creates a new "AND HAVING" condition for the query.
public IDbQueryBuilder orHaving(java.lang.String column, java.lang.String op, java.lang.Object value)
Creates a new "OR HAVING" condition for the query.
public IDbQueryBuilder andHavingCondition(java.lang.String condition, java.util.List<?> params)
Creates a new "AND HAVING" condition for the query.
public IDbQueryBuilder orHavingCondition(java.lang.String condition, java.util.List<?> params)
Creates a new "OR HAVING" condition for the query.
public IDbQueryBuilder andHavingOpen()
Opens a new "AND HAVING (...)" grouping.
public IDbQueryBuilder orHavingOpen()
Opens a new "OR HAVING (...)" grouping.
public IDbQueryBuilder andHavingClose()
Closes an open "AND HAVING (...)" grouping.
public IDbQueryBuilder orHavingClose()
Closes an open "OR HAVING (...)" grouping.
public IDbQueryBuilder orderBy(java.lang.String column, java.lang.String direction)
Applies sorting with "ORDER BY ..."
public IDbQueryBuilder limit(int limit, int offset)
Return up to "LIMIT ..." results