Package cn.cloudself.query.resolver
Class QSRTmpl
- java.lang.Object
-
- cn.cloudself.query.resolver.QSRTmpl
-
- All Implemented Interfaces:
DatabaseAccessor,QSR
- Direct Known Subclasses:
JdbcQSR
public abstract class QSRTmpl extends Object implements QSR, DatabaseAccessor
QSR的模板类
一般继承该类重写 相应的抽象方法即可
queryStructureToSql(QueryStructure),insertObjectToSql(java.util.Collection<?>, java.lang.String, java.util.Collection<cn.cloudself.query.resolver.QSRTmpl.Column>),getColumnsDynamic(java.lang.String)也是可以重写的 如需自行实现QSR, 需要处理生命周期方法beforeRunSql, afterRunSql以及如果用到dryRun模式,需要添加相应的支持
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classQSRTmpl.Column
-
Constructor Summary
Constructors Constructor Description QSRTmpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> TexecBatch(HashMapStore configStore, List<SqlAndParams> sqlAndParamsList, Class<T> clazz)使用多条语句和参数执行更新,创建,删除等非select语句<ID,V,M extends Map<String,V>>
List<ID>insert(HashMapStore configStore, Collection<M> objs, String table, Class<ID> idColumnClazz)动态插入 本实现额外引入了对大数据量数据批量插入的支持 通过 objs 配合数据库表名,动态生成sql语句,并执行List<Object>insert(QueryStructure queryStructure, QueryPayload payload, Class<?> clazz)将QueryStructure解析至SQL并执行(insert) insert方法和resolve方法的区别是 返回结果不一样<T> List<T>resolve(HashMapStore configStore, QueryStructureAction action, String sql, Object[] params, Class<T> clazz)执行一个SQL查询<T> List<T>resolve(QueryStructure queryStructure, QueryPayload payload, Class<T> clazz)将QueryStructure解析至SQL并执行-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface cn.cloudself.query.resolver.DatabaseAccessor
doDelete, doInsert, doSelect, doUpdate
-
-
-
-
Method Detail
-
resolve
@NotNull public <T> List<T> resolve(@NotNull QueryStructure queryStructure, @NotNull QueryPayload payload, @NotNull Class<T> clazz)
将QueryStructure解析至SQL并执行
-
insert
@NotNull public List<Object> insert(@NotNull QueryStructure queryStructure, @NotNull QueryPayload payload, @NotNull Class<?> clazz)
Description copied from interface:QSR将QueryStructure解析至SQL并执行(insert) insert方法和resolve方法的区别是 返回结果不一样
-
resolve
@NotNull public <T> List<T> resolve(@NotNull HashMapStore configStore, @NotNull QueryStructureAction action, @NotNull String sql, @NotNull Object[] params, @NotNull Class<T> clazz)
执行一个SQL查询- Specified by:
resolvein interfaceQSR- Parameters:
sql- 单条sql语句 e.g. SELECT * FROM user WHERE user.id = ?params- 参数数组 e.g. [1]clazz- `JavaBean`, `Map`, and basic type e.g. `Long`, `String`, `Boolean` etc. for select by default; [Int] for updateaction- [QueryStructureAction]- Returns:
- clazz为基本类型时,可能返回List
-
execBatch
@NotNull public <T> T execBatch(@NotNull HashMapStore configStore, @NotNull List<SqlAndParams> sqlAndParamsList, @NotNull Class<T> clazz)使用多条语句和参数执行更新,创建,删除等非select语句
-
insert
@NotNull public <ID,V,M extends Map<String,V>> List<ID> insert(@NotNull HashMapStore configStore, @NotNull Collection<M> objs, @NotNull String table, @Nullable Class<ID> idColumnClazz)
动态插入 本实现额外引入了对大数据量数据批量插入的支持 通过 objs 配合数据库表名,动态生成sql语句,并执行
-
-