public class IDbQuery
查询sql执行
1 db的动态性 所有sql执行方法的最后一个参数都是 db 对象, 每次执行sql都需要指定一个 db, 这是为了抽取子类的共同需求 1.1 DbQueryBuilder 需要递延指定 db, 在最后要编译与执行sql时才指定, 方便实现按需选择不同的连接, 如读写分离 1.2 CompiledSql 只为缓存编译的sql, 跨请求的存在, 不可能预先确定 db
2 db的预设性 在Orm模型中, db是预先定义在元数据中, 以后执行sql也不需要你重新指定db => 抽象属性 defaultDb 来记录预设的 db
3 注:为什么不是接口,而是抽象类? 因为我需要实现几个 inline 方法, 这几个方法都需要具体化泛型,因此需要内联实现inline,但是inline不能用于接口方法/抽象方法,因此我直接在该类中实现这两个方法,该类也只能由接口变为抽象类
| 构造器和说明 |
|---|
IDbQuery()
查询sql执行
|
| 限定符和类型 | 方法和说明 |
|---|---|
java.lang.Object |
clone() |
<T> java.util.List<T> |
findColumn(java.util.List<?> params,
kotlin.reflect.KClass<T> clazz,
IDb db)
查询一列(多行)
|
<T extends IEntitiableOrm<E>,E extends OrmEntity> |
findEntities(java.lang.Class<T> clazz,
java.util.List<?> params,
IDb db)
查找一个: select ... limit 1语句
|
<T extends IEntitiableOrm<E>,E extends OrmEntity> |
findEntities(java.lang.Class<T> clazz,
java.util.List<?> params)
查找一个: select ... limit 1语句
|
<T extends IEntitiableOrm<E>,E extends OrmEntity> |
findEntities(java.lang.Class<T> clazz)
查找一个: select ... limit 1语句
|
<T extends IEntitiableOrm<E>,E extends OrmEntity> |
findEntity(java.lang.Class<T> clazz,
java.util.List<?> params,
IDb db)
查找一个: select ... limit 1语句
|
<T extends IEntitiableOrm<E>,E extends OrmEntity> |
findEntity(java.lang.Class<T> clazz,
java.util.List<?> params)
查找一个: select ... limit 1语句
|
<T extends IEntitiableOrm<E>,E extends OrmEntity> |
findEntity(java.lang.Class<T> clazz)
查找一个: select ... limit 1语句
|
java.util.Map<java.lang.String,java.lang.Object> |
findMap(java.util.List<?> params,
boolean convertingColumn,
IDb db)
查找一个: select ... limit 1语句
|
java.util.List<java.util.Map> |
findMaps(java.util.List<?> params,
boolean convertingColumn,
IDb db)
查找多个: select 语句
|
<T extends IOrm> |
findModel(java.lang.Class<T> clazz,
java.util.List<?> params,
IDb db)
查找一个: select ... limit 1语句
|
<T extends IOrm> |
findModel(java.lang.Class<T> clazz,
java.util.List<?> params)
查找一个: select ... limit 1语句
|
<T extends IOrm> |
findModel(java.lang.Class<T> clazz)
查找一个: select ... limit 1语句
|
<T extends IOrm> |
findModels(java.lang.Class<T> clazz,
java.util.List<?> params,
IDb db)
查找多个: select 语句
|
<T extends IOrm> |
findModels(java.lang.Class<T> clazz,
java.util.List<?> params)
查找多个: select 语句
|
<T extends IOrm> |
findModels(java.lang.Class<T> clazz)
查找多个: select 语句
|
<T> T |
findResult(java.util.List<?> params,
boolean single,
IDb db,
kotlin.jvm.functions.Function1<? super net.jkcode.jkmvc.db.DbResultSet,? extends T> transform)
查找结果: select 语句
|
<T> T |
findRow(java.util.List<?> params,
IDb db,
kotlin.jvm.functions.Function1<? super net.jkcode.jkmvc.db.DbResultRow,? extends T> transform)
查找一个: select ... limit 1语句
|
<T> java.util.List<T> |
findRows(java.util.List<?> params,
IDb db,
kotlin.jvm.functions.Function1<? super net.jkcode.jkmvc.db.DbResultRow,? extends T> transform)
查找多个: select 语句
不能inline, 子类OrmQueryBuilder改写
|
<T> T |
findValue(java.util.List<?> params,
kotlin.reflect.KClass<T> clazz,
IDb db)
查询一行一列
|
IDb |
getDefaultDb()
默认db名
用在sql执行方法中最后一个参数中, 默认使用该属性对应的db
|
public IDbQuery()
查询sql执行
1 db的动态性 所有sql执行方法的最后一个参数都是 db 对象, 每次执行sql都需要指定一个 db, 这是为了抽取子类的共同需求 1.1 DbQueryBuilder 需要递延指定 db, 在最后要编译与执行sql时才指定, 方便实现按需选择不同的连接, 如读写分离 1.2 CompiledSql 只为缓存编译的sql, 跨请求的存在, 不可能预先确定 db
2 db的预设性 在Orm模型中, db是预先定义在元数据中, 以后执行sql也不需要你重新指定db => 抽象属性 defaultDb 来记录预设的 db
3 注:为什么不是接口,而是抽象类? 因为我需要实现几个 inline 方法, 这几个方法都需要具体化泛型,因此需要内联实现inline,但是inline不能用于接口方法/抽象方法,因此我直接在该类中实现这两个方法,该类也只能由接口变为抽象类
public IDb getDefaultDb()
默认db名 用在sql执行方法中最后一个参数中, 默认使用该属性对应的db
public <T> T findResult(java.util.List<?> params,
boolean single,
IDb db,
kotlin.jvm.functions.Function1<? super net.jkcode.jkmvc.db.DbResultSet,? extends T> transform)
查找结果: select 语句
public <T> java.util.List<T> findRows(java.util.List<?> params,
IDb db,
kotlin.jvm.functions.Function1<? super net.jkcode.jkmvc.db.DbResultRow,? extends T> transform)
查找多个: select 语句 不能inline, 子类OrmQueryBuilder改写
public <T> T findRow(java.util.List<?> params,
IDb db,
kotlin.jvm.functions.Function1<? super net.jkcode.jkmvc.db.DbResultRow,? extends T> transform)
查找一个: select ... limit 1语句
public <T> java.util.List<T> findColumn(java.util.List<?> params,
kotlin.reflect.KClass<T> clazz,
IDb db)
查询一列(多行)
public <T> T findValue(java.util.List<?> params,
kotlin.reflect.KClass<T> clazz,
IDb db)
查询一行一列
public java.util.List<java.util.Map> findMaps(java.util.List<?> params,
boolean convertingColumn,
IDb db)
查找多个: select 语句
public java.util.Map<java.lang.String,java.lang.Object> findMap(java.util.List<?> params,
boolean convertingColumn,
IDb db)
查找一个: select ... limit 1语句
public <T extends IOrm> java.util.List<T> findModels(java.lang.Class<T> clazz, java.util.List<?> params, IDb db)
查找多个: select 语句
public <T extends IOrm> java.util.List<T> findModels(java.lang.Class<T> clazz, java.util.List<?> params)
查找多个: select 语句
public <T extends IOrm> java.util.List<T> findModels(java.lang.Class<T> clazz)
查找多个: select 语句
public <T extends IOrm> T findModel(java.lang.Class<T> clazz, java.util.List<?> params, IDb db)
查找一个: select ... limit 1语句
public <T extends IOrm> T findModel(java.lang.Class<T> clazz, java.util.List<?> params)
查找一个: select ... limit 1语句
public <T extends IOrm> T findModel(java.lang.Class<T> clazz)
查找一个: select ... limit 1语句
public <T extends IEntitiableOrm<E>,E extends OrmEntity> java.util.List<E> findEntities(java.lang.Class<T> clazz, java.util.List<?> params, IDb db)
查找一个: select ... limit 1语句
public <T extends IEntitiableOrm<E>,E extends OrmEntity> java.util.List<E> findEntities(java.lang.Class<T> clazz, java.util.List<?> params)
查找一个: select ... limit 1语句
public <T extends IEntitiableOrm<E>,E extends OrmEntity> java.util.List<E> findEntities(java.lang.Class<T> clazz)
查找一个: select ... limit 1语句
public <T extends IEntitiableOrm<E>,E extends OrmEntity> E findEntity(java.lang.Class<T> clazz, java.util.List<?> params, IDb db)
查找一个: select ... limit 1语句
public <T extends IEntitiableOrm<E>,E extends OrmEntity> E findEntity(java.lang.Class<T> clazz, java.util.List<?> params)
查找一个: select ... limit 1语句
public <T extends IEntitiableOrm<E>,E extends OrmEntity> E findEntity(java.lang.Class<T> clazz)
查找一个: select ... limit 1语句
public java.lang.Object clone()