-
- All Implemented Interfaces:
-
cn.cloudself.query.resolver.IQueryStructureResolver
public abstract class QSR implements IQueryStructureResolver
IQueryStructureResolver的模板类, 一般继承该类重写 相应的抽象方法即可 qs2sql也是可以重写的
如需自行实现IQueryStructureResolver, 需要处理生命周期方法beforeRunSql, afterRunSql以及添加对dryRun模式的支持
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public final classQSR.SqlForInsert
-
Constructor Summary
Constructors Constructor Description QSR()
-
Method Summary
Modifier and Type Method Description abstract <T extends Any> List<T>doSelect(Class<?> queryPro, String sql, Array<Object> params, Class<T> clazz)abstract <T extends Any> TdoUpdate(Class<?> queryPro, String sql, Array<Object> params, Class<T> clazz)abstract <T extends Any> TdoUpdateBatch(Class<?> queryPro, String sql, Array<Array<Object>> params, Class<T> clazz)abstract <ID extends Any> List<ID>doInsert(Class<?> queryPro, String sql, Array<Object> params, Class<ID> clazz)abstract <ID extends Any> List<ID>doInsertBatch(Class<?> queryPro, String sql, Array<Array<Object>> params, Class<ID> clazz)Pair<String, Array<Object>>queryStructureToSql(QueryStructure queryStructure)<T extends Any> List<QSR.SqlForInsert>insertObjectToSql(Collection<Object> objs, Class<T> clazz)<T extends Any> List<T>resolve(Class<?> queryPro, QueryStructure queryStructure, Class<T> clazz)将QueryStructure解析至SQL并执行 <T extends Any> List<T>resolve(Class<?> queryPro, String sql, Array<Object> params, Class<T> clazz, QueryStructureAction action)执行一个SQL查询 <T extends Any> Texec(Class<?> queryPro, Array<String> sqlArr, Array<Array<Object>> paramsArr, Class<T> clazz)使用多条语句和参数执行更新,创建,删除等非select语句 -
-
Method Detail
-
doSelect
abstract <T extends Any> List<T> doSelect(Class<?> queryPro, String sql, Array<Object> params, Class<T> clazz)
- Parameters:
clazz- 需返回的对象类型
-
doUpdate
abstract <T extends Any> T doUpdate(Class<?> queryPro, String sql, Array<Object> params, Class<T> clazz)
- Parameters:
clazz- 需返回的对象的类型,一般添加对 Integer, Boolean的支持即可
-
doUpdateBatch
abstract <T extends Any> T doUpdateBatch(Class<?> queryPro, String sql, Array<Array<Object>> params, Class<T> clazz)
- Parameters:
clazz- 需返回的对象的类型,一般添加对 Integer, Boolean的支持即可
-
doInsert
abstract <ID extends Any> List<ID> doInsert(Class<?> queryPro, String sql, Array<Object> params, Class<ID> clazz)
- Parameters:
clazz- insert方法需返回id列表,clazz是指ID的类型 如Long, Integer, String等
-
doInsertBatch
abstract <ID extends Any> List<ID> doInsertBatch(Class<?> queryPro, String sql, Array<Array<Object>> params, Class<ID> clazz)
- Parameters:
clazz- insert方法需返回id列表,clazz是指ID的类型 如Long, Integer, String等
-
queryStructureToSql
Pair<String, Array<Object>> queryStructureToSql(QueryStructure queryStructure)
-
insertObjectToSql
<T extends Any> List<QSR.SqlForInsert> insertObjectToSql(Collection<Object> objs, Class<T> clazz)
-
resolve
<T extends Any> List<T> resolve(Class<?> queryPro, QueryStructure queryStructure, Class<T> clazz)
将QueryStructure解析至SQL并执行
- Parameters:
queryStructure- QueryStructureclazz- SupportedQueryClazz
-
resolve
<T extends Any> List<T> resolve(Class<?> queryPro, String sql, Array<Object> params, Class<T> clazz, QueryStructureAction action)
执行一个SQL查询
- Parameters:
sql- 单条sql语句 e.g.params- 参数数组 e.g.clazz- SupportedQueryClazz for select; Int for updateaction- QueryStructureAction
-
exec
<T extends Any> T exec(Class<?> queryPro, Array<String> sqlArr, Array<Array<Object>> paramsArr, Class<T> clazz)
使用多条语句和参数执行更新,创建,删除等非select语句
- Parameters:
sqlArr- 多条或单条SQL语句paramsArr- sqlArr 的长度为1时,params的长度任意。代表同一语句包含多参数 sqlArr 的长度不为1时,params的长度必须和 sqlArr的长度相等。clazz- SupportedUpdatedBatchClazz
-
-
-
-