Package 

Class QSR

  • All Implemented Interfaces:
    cn.cloudself.query.resolver.IQueryStructureResolver

    
    public abstract class QSR
     implements IQueryStructureResolver
                        

    IQueryStructureResolver的模板类, 一般继承该类重写 相应的抽象方法即可 queryStructureToSql, insertObjectToSql, getColumnsDynamic也是可以重写的

    如需自行实现IQueryStructureResolver, 需要处理生命周期方法beforeRunSql, afterRunSql以及添加对dryRun模式的支持

    • Constructor Detail

      • QSR

        QSR()
    • Method Detail

      • doUpdate

         abstract <T extends Any> T doUpdate(Class<?> queryPro, String sql, 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等
      • getColumnsDynamic

         Collection<QSR.Column> getColumnsDynamic(String table)

        提供:表名

        生成列信息(如需使用动态插入语句,例如 QueryProSql.create().insert(Map,则必须重写以实现该功能,可参考JdbcQSR.getColumnsDynamic的实现)

        该方法可重写

      • resolve

         <T extends Any> List<T> resolve(Class<?> queryPro, QueryStructure queryStructure, Class<T> clazz)

        将QueryStructure解析至SQL并执行

        Parameters:
        queryStructure - QueryStructure
        clazz - QSR模版支持JavaBean, Map, 以及Long, String, Boolean等基本类型。另外,默认使用的JdbcQSR(为QSR的子类)还额外支持IResultSetWalker
      • 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 - 指定返回结果的类型,支持 List<Integer> Integer[] Int Boolean(不准确)
      • insert

         <ID extends Any, V extends Any, M extends Map<String, V>> List<ID> insert(Collection<M> objs, String table, Class<ID> idColumnClazz)

        动态插入 通过 objs 配合数据库表名,动态生成sql语句,并执行

        Parameters:
        objs - 需要插入的Map类型的集合
        table - 数据库表名
        idColumnClazz - 如需返回ID,指定ID的类型