public class IDbQueryBuilder extends IDbQuery implements IDbQueryBuilderQuoter, IDbQueryBuilderAction, IDbQueryBuilderDecoration
sql构建器 1 作用 依次继承 DbQueryBuilderAction 处理动作子句 + DbQueryBuilderDecoration 处理修饰子句 提供select/where等类sql的方法, 但是调用方法时, 不直接拼接sql, 而是在compile()时才延迟拼接sql, 因为调用方法时元素可以无序, 但生成sql时元素必须有序
2 CharSequence接口 为了适配 DbQueryBuilder 中的查询方法的查询参数类型, 如 select() / where() 否则要重载很多方法来接收 DbExpr 参数
IDbQueryBuilderQuoter.DefaultImplsIDbQueryBuilderAction.DefaultImplsIDbQueryBuilderDecoration.DefaultImpls| 构造器和说明 |
|---|
IDbQueryBuilder()
sql构建器
1 作用
依次继承 DbQueryBuilderAction 处理动作子句 + DbQueryBuilderDecoration 处理修饰子句
提供select/where等类sql的方法, 但是调用方法时, 不直接拼接sql, 而是在compile()时才延迟拼接sql, 因为调用方法时元素可以无序, 但生成sql时元素必须有序
|
| 限定符和类型 | 方法和说明 |
|---|---|
IDbQueryBuilder |
andWhereWrap(kotlin.jvm.functions.Function1<? super net.jkcode.jkmvc.query.IDbQueryBuilder,kotlin.Unit> action)
Wrap a new "AND WHERE (...)" grouping.
|
int[] |
batchDelete(java.util.List<? extends java.lang.Object> paramses,
IDb db)
批量插入
|
int[] |
batchExecute(SqlAction action,
java.util.List<? extends java.lang.Object> paramses,
IDb db)
批量更新有参数的sql
|
int[] |
batchInsert(java.util.List<? extends java.lang.Object> paramses,
IDb db)
批量插入
|
int[] |
batchUpdate(java.util.List<? extends java.lang.Object> paramses,
IDb db)
批量更新
|
char |
charAt(int p) |
java.lang.Object |
clone()
克隆对象: 单纯用于改权限为public
|
CompiledSql |
compile(SqlAction action,
IDb db,
boolean clone)
编译sql
|
CompiledSql |
compileCount(IDb db)
编译select count() 语句
|
CompiledSql |
compileDelete(IDb db)
编译delete语句
|
CompiledSql |
compileInsert(IDb db)
编译insert语句
|
CompiledSql |
compileSelect(IDb db)
编译select语句
|
CompiledSql |
compileSelectOne(IDb db)
编译select ... limit 1语句
|
CompiledSql |
compileUpdate(IDb db)
编译update语句
|
IDbQueryBuilder |
copy(boolean clearSelect)
克隆对象, 同clone(), 只转换下返回类型为 IDbQueryBuilder
|
int |
count(java.util.List<?> params,
IDb db)
统计行数: count语句
|
boolean |
delete(java.util.List<?> params,
IDb db)
删除
|
long |
execute(SqlAction action,
java.util.List<? extends java.lang.Object> params,
java.lang.String generatedColumn,
IDb db)
编译 + 执行
|
<T> java.util.List<T> |
fastFindPageBySubquery(int limit,
int offset,
java.lang.String idField,
boolean whereOnlyIds,
java.util.List<?> params,
IDb db,
kotlin.jvm.functions.Function1<? super net.jkcode.jkmvc.db.DbResultRow,? extends T> transform)
通过select id子查询来加快分页查询
|
java.util.List<java.util.Map> |
fastFindPageMaps(int limit,
int offset,
java.lang.String idField,
boolean whereOnlyIds,
java.util.List<?> params,
boolean convertingColumn,
IDb db)
通过select id子查询来加快分页查询
|
IDbQueryBuilder |
from(java.lang.String table,
java.lang.String alias)
设置表名
|
IDbQueryBuilder |
from(IDbQueryBuilder subquery,
java.lang.String alias)
设置表名
|
char |
get(int index) |
int |
getLength() |
IDbQueryBuilder |
groupBys(java.lang.String columns)
Creates a "GROUP BY ..." filter.
|
IDbQueryBuilder |
groupBys(java.util.List<java.lang.String> columns)
Creates a "GROUP BY ..." filter.
|
IDbQueryBuilder |
having(java.lang.String column,
java.lang.String op,
java.lang.Object value)
Alias of andHaving()
|
IDbQueryBuilder |
havingClose()
Closes an open "AND HAVING (...)" grouping.
|
IDbQueryBuilder |
havingCondition(java.lang.String condition,
java.util.List<?> params)
Alias of andHavingCondition()
|
IDbQueryBuilder |
havingOpen()
Alias of andHavingOpen()
|
IDbQueryBuilder |
havings(java.util.Map<java.lang.String,? extends java.lang.Object> conditions)
多个having条件
|
boolean |
incr(java.lang.String column,
int step,
java.util.List<?> params,
IDb db)
自增
|
long |
insert(java.lang.String generatedColumn,
java.util.List<?> params,
IDb db)
插入:insert语句
|
int |
length() |
IDbQueryBuilder |
ons(java.util.Map<java.lang.String,? extends java.lang.Object> conditions,
boolean isCol)
多个on条件
|
IDbQueryBuilder |
orWhereBetween(java.lang.String column,
java.lang.Object from,
java.lang.Object to)
Creates a new "OR WHERE BETWEEN" condition for the query.
|
IDbQueryBuilder |
orWhereLike(java.lang.String column,
java.lang.String value)
Creates a new "OR WHERE LIKE" condition for the query.
|
IDbQueryBuilder |
orWhereWrap(kotlin.jvm.functions.Function1<? super net.jkcode.jkmvc.query.IDbQueryBuilder,kotlin.Unit> action)
Wrap a new "Or WHERE (...)" grouping.
|
IDbQueryBuilder |
orderBy(java.lang.String column,
java.lang.Boolean desc)
Applies sorting with "ORDER BY ..."
|
IDbQueryBuilder |
orderBys(java.util.Map<java.lang.String,java.lang.String> orders)
Multiple OrderBy
|
IDbQueryBuilder |
orderBys(java.lang.String columns)
Multiple OrderBy
|
java.lang.String |
quote(IDb db,
java.lang.Object value)
转义值
|
java.lang.String |
quoteColumn(IDb db,
java.lang.CharSequence column)
转义字段名
|
java.lang.String |
quoteColumnOrValue(IDb db,
kotlin.Pair<? extends java.lang.Object,java.lang.Boolean> colOrVal)
转义字段名/值
|
java.lang.String |
quoteTable(IDb db,
java.lang.CharSequence table)
转义表名
|
IDbQueryBuilder |
selectDistinct(java.lang.CharSequence columns)
设置查询的字段, select时用
|
java.lang.CharSequence |
subSequence(int startIndex,
int endIndex) |
int |
sum(java.lang.String column,
java.util.List<?> params,
IDb db)
加总列值: sum语句
|
IDbQueryBuilder |
table(java.lang.String table,
java.lang.String alias)
设置表名
|
boolean |
update(java.util.List<?> params,
IDb db)
更新:update语句
|
IDbQueryBuilder |
where(java.lang.String column,
java.lang.String op,
java.lang.Object value)
Alias of andWhere()
|
IDbQueryBuilder |
whereBetween(java.lang.String column,
java.lang.Object from,
java.lang.Object to)
Creates a new "WHERE BETWEEN" condition for the query.
|
IDbQueryBuilder |
whereClose()
Closes an open "WHERE (...)" grouping.
|
IDbQueryBuilder |
whereCondition(java.lang.String condition,
java.util.List<?> params)
Alias of andWhereCondition()
|
IDbQueryBuilder |
whereLike(java.lang.String column,
java.lang.String value)
Creates a new "WHERE LIKE" condition for the query.
|
IDbQueryBuilder |
whereOpen()
Alias of andWhereOpen()
|
IDbQueryBuilder |
whereWrap(kotlin.jvm.functions.Function1<? super net.jkcode.jkmvc.query.IDbQueryBuilder,kotlin.Unit> action)
Wrap a new "AND WHERE (...)" grouping.
|
IDbQueryBuilder |
wheres(java.util.Map<java.lang.String,? extends java.lang.Object> conditions)
Multiple Where
|
IDbQueryBuilder |
wheres(java.util.List<? extends kotlin.Triple<java.lang.String,java.lang.String,?extendsjava.lang.Object>> conditions)
Multiple Where
|
clone, 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 IDbQueryBuilder()
sql构建器 1 作用 依次继承 DbQueryBuilderAction 处理动作子句 + DbQueryBuilderDecoration 处理修饰子句 提供select/where等类sql的方法, 但是调用方法时, 不直接拼接sql, 而是在compile()时才延迟拼接sql, 因为调用方法时元素可以无序, 但生成sql时元素必须有序
2 CharSequence接口 为了适配 DbQueryBuilder 中的查询方法的查询参数类型, 如 select() / where() 否则要重载很多方法来接收 DbExpr 参数
public java.lang.Object clone()
克隆对象: 单纯用于改权限为public
public IDbQueryBuilder copy(boolean clearSelect)
克隆对象, 同clone(), 只转换下返回类型为 IDbQueryBuilder
public CompiledSql compile(SqlAction action, IDb db, boolean clone)
编译sql
public CompiledSql compileSelect(IDb db)
编译select语句
public CompiledSql compileSelectOne(IDb db)
编译select ... limit 1语句
public CompiledSql compileCount(IDb db)
编译select count() 语句
public CompiledSql compileInsert(IDb db)
编译insert语句
public CompiledSql compileUpdate(IDb db)
编译update语句
public CompiledSql compileDelete(IDb db)
编译delete语句
public int count(java.util.List<?> params,
IDb db)
统计行数: count语句
public int sum(java.lang.String column,
java.util.List<?> params,
IDb db)
加总列值: sum语句
public long execute(SqlAction action, java.util.List<? extends java.lang.Object> params, java.lang.String generatedColumn, IDb db)
编译 + 执行
public long insert(java.lang.String generatedColumn,
java.util.List<?> params,
IDb db)
插入:insert语句
public boolean update(java.util.List<?> params,
IDb db)
更新:update语句
public boolean delete(java.util.List<?> params,
IDb db)
删除
public boolean incr(java.lang.String column,
int step,
java.util.List<?> params,
IDb db)
自增
public int[] batchExecute(SqlAction action, java.util.List<? extends java.lang.Object> paramses, IDb db)
批量更新有参数的sql
public int[] batchInsert(java.util.List<? extends java.lang.Object> paramses,
IDb db)
批量插入
public int[] batchUpdate(java.util.List<? extends java.lang.Object> paramses,
IDb db)
批量更新
public int[] batchDelete(java.util.List<? extends java.lang.Object> paramses,
IDb db)
批量插入
public <T> java.util.List<T> fastFindPageBySubquery(int limit,
int offset,
java.lang.String idField,
boolean whereOnlyIds,
java.util.List<?> params,
IDb db,
kotlin.jvm.functions.Function1<? super net.jkcode.jkmvc.db.DbResultRow,? extends T> transform)
通过select id子查询来加快分页查询
public java.util.List<java.util.Map> fastFindPageMaps(int limit,
int offset,
java.lang.String idField,
boolean whereOnlyIds,
java.util.List<?> params,
boolean convertingColumn,
IDb db)
通过select id子查询来加快分页查询
public java.lang.String quote(IDb db, java.lang.Object value)
转义值
public java.lang.String quoteColumnOrValue(IDb db, kotlin.Pair<? extends java.lang.Object,java.lang.Boolean> colOrVal)
转义字段名/值
public java.lang.String quoteColumn(IDb db, java.lang.CharSequence column)
转义字段名
public java.lang.String quoteTable(IDb db, java.lang.CharSequence table)
转义表名
public IDbQueryBuilder table(java.lang.String table, java.lang.String alias)
设置表名
public IDbQueryBuilder from(java.lang.String table, java.lang.String alias)
设置表名
public IDbQueryBuilder from(IDbQueryBuilder subquery, java.lang.String alias)
设置表名
public IDbQueryBuilder selectDistinct(java.lang.CharSequence columns)
设置查询的字段, select时用
public IDbQueryBuilder ons(java.util.Map<java.lang.String,? extends java.lang.Object> conditions, boolean isCol)
多个on条件
public IDbQueryBuilder havings(java.util.Map<java.lang.String,? extends java.lang.Object> conditions)
多个having条件
public IDbQueryBuilder where(java.lang.String column, java.lang.String op, java.lang.Object value)
Alias of andWhere()
public IDbQueryBuilder whereBetween(java.lang.String column, java.lang.Object from, java.lang.Object to)
Creates a new "WHERE BETWEEN" condition for the query.
public IDbQueryBuilder orWhereBetween(java.lang.String column, java.lang.Object from, java.lang.Object to)
Creates a new "OR WHERE BETWEEN" condition for the query.
public IDbQueryBuilder whereLike(java.lang.String column, java.lang.String value)
Creates a new "WHERE LIKE" condition for the query.
public IDbQueryBuilder orWhereLike(java.lang.String column, java.lang.String value)
Creates a new "OR WHERE LIKE" condition for the query.
public IDbQueryBuilder wheres(java.util.Map<java.lang.String,? extends java.lang.Object> conditions)
Multiple Where
public IDbQueryBuilder wheres(java.util.List<? extends kotlin.Triple<java.lang.String,java.lang.String,?extendsjava.lang.Object>> conditions)
Multiple Where
public IDbQueryBuilder whereCondition(java.lang.String condition, java.util.List<?> params)
Alias of andWhereCondition()
public IDbQueryBuilder whereOpen()
Alias of andWhereOpen()
public IDbQueryBuilder andWhereWrap(kotlin.jvm.functions.Function1<? super net.jkcode.jkmvc.query.IDbQueryBuilder,kotlin.Unit> action)
Wrap a new "AND WHERE (...)" grouping.
public IDbQueryBuilder whereWrap(kotlin.jvm.functions.Function1<? super net.jkcode.jkmvc.query.IDbQueryBuilder,kotlin.Unit> action)
Wrap a new "AND WHERE (...)" grouping.
public IDbQueryBuilder orWhereWrap(kotlin.jvm.functions.Function1<? super net.jkcode.jkmvc.query.IDbQueryBuilder,kotlin.Unit> action)
Wrap a new "Or WHERE (...)" grouping.
public IDbQueryBuilder whereClose()
Closes an open "WHERE (...)" grouping.
public IDbQueryBuilder groupBys(java.lang.String columns)
Creates a "GROUP BY ..." filter.
public IDbQueryBuilder groupBys(java.util.List<java.lang.String> columns)
Creates a "GROUP BY ..." filter.
public IDbQueryBuilder having(java.lang.String column, java.lang.String op, java.lang.Object value)
Alias of andHaving()
public IDbQueryBuilder havingCondition(java.lang.String condition, java.util.List<?> params)
Alias of andHavingCondition()
public IDbQueryBuilder havingOpen()
Alias of andHavingOpen()
public IDbQueryBuilder havingClose()
Closes an open "AND HAVING (...)" grouping.
public IDbQueryBuilder orderBy(java.lang.String column, java.lang.Boolean desc)
Applies sorting with "ORDER BY ..."
public IDbQueryBuilder orderBys(java.util.Map<java.lang.String,java.lang.String> orders)
Multiple OrderBy
public IDbQueryBuilder orderBys(java.lang.String columns)
Multiple OrderBy
public int getLength()
public int length()
public char get(int index)
public char charAt(int p)
public java.lang.CharSequence subSequence(int startIndex,
int endIndex)