cn.remex.db.rsql
类 RsqlContainer

java.lang.Object
  继承者 cn.remex.db.rsql.RsqlContainer
所有已实现的接口:
Container, RsqlConstants

public class RsqlContainer
extends Object
implements Container, RsqlConstants

本类对外交互的参数只有两个cvo、rvo。 其中cvo封装了读取json的基本参数,并且 在cvo中的parameter变量中必须含有 sqlCvoName变量的索引


嵌套类摘要
 
从接口 cn.remex.db.rsql.RsqlConstants 继承的嵌套类/接口
RsqlConstants.DataStatus, RsqlConstants.SqlOper, RsqlConstants.WhereGroupOp, RsqlConstants.WhereRuleOper
 
字段摘要
 
从接口 cn.remex.db.rsql.RsqlConstants 继承的字段
DS_beanNew, DS_managed, DS_needSave, DS_part, DS_removed, DS_saving, DT_base, DT_collection, DT_map, DT_object, DT_objectExt, DT_present, DT_realDelete, DT_selfDefination, DT_unrealDelete, DT_whole, isDebug, logger, PN_bn, PN_bs, PN_bsCmd, PN_dc, PN_doCount, PN_doPaging, PN_dt, PN_ec, PN_fb, PN_filter, PN_filterBean, PN_id, PN_JAVASqlBean, PN_jqg_pagination, PN_jqg_rowCount, PN_JSONSqlBean, PN_listFied, PN_model, PN_oper, PN_pagination, PN_parentIds, PN_recordCount, PN_rowCount, PN_rt, PN_search, PN_searchField, PN_searchOper, PN_searchString, PN_sidx, PN_sord, PN_spaceName, PN_SqlBeanType, PN_sqlString, PN_subList, PN_whOptById, RT_map, RT_obj, SBTP_JAVA, SBTP_JSON, SBTP_LIST, SQL_IDENTITY, SQL_Insert_Identity, SYS_createOperator, SYS_createOperator_name, SYS_createTime, SYS_dataStatus, SYS_id, SYS_ids, SYS_key, SYS_key_idPreffix, SYS_Method_getDataStatus, SYS_Method_getId, SYS_Method_setDataStatus, SYS_Method_setId, SYS_modifyOperator, SYS_modifyOperator_name, SYS_modifyTime, SYS_name, SYS_ownership, SYS_ownership_name, SYS_tableName, SYS_value, SYS_version
 
构造方法摘要
RsqlContainer()
           
 
方法摘要
<T extends Modelable>
DbRvo
copy(DbCvo<T> cvo)
           
<T extends Modelable>
T
createBean(Class<T> beanClass)
          创建一个受控的、代理的数据库Bean
 DbRvo createCall(String callSql)
          以callSql为SQL语句创建存储过程/函数等。
<T extends Modelable>
DbCvo<T>
createDbCvo(Class<T> beanClass)
          创建一个数据查询的对象,进行链式访问
<T extends Modelable>
DbRvo
delete(T o)
          从数据中删除对象o。
<T extends Modelable>
DbRvo
deleteById(Class<T> clazz, String id)
          根据传入的对象类型clazz和主键id删除数据
<T extends Modelable>
DbRvo
deleteByIds(Class<T> clazz, String ids)
          根据ids批量删除数据
 DbRvo execute(String sql, HashMap<String,Object> params)
          根据传入的sql和参数对数据进行操作
如果string以"SQL_"开头则从spring的配置文件Rsql_SQL中获取真实的SQL。
 RsqlRvo executeQuery(String sql, HashMap<String,Object> params)
          根据传入的sql语句和参数执行数据库查询操作
如果string以"SQL_"开头则从spring的配置文件Rsql_SQL中获取真实的SQL。
 RsqlRvo executeUpdate(String sql, HashMap<String,Object> params)
          根据传入的sql语句和参数执行数据库更新操作
如果string以"SQL_"开头则从spring的配置文件Rsql_SQL中获取真实的SQL。
<T extends Modelable>
boolean
exists(T obj, boolean forceCheckFromDB)
          判断dataStatus及通过RsqlContainer#getPK(Modelable)来检查是否在本数据库中存在该对象。
 boolean existsModel(String beanName)
           
 String getSpaceName()
           
<T extends Modelable>
List<T>
list(T model)
          根据非空属性或非0属性进行数据属性匹配查询并返回结果,如果没有查到,将返回size为0的new ArrayList()
 Class<?> obtainModelClass(String beanName)
           
<T extends Modelable>
T
pickUp(T model)
          根据非空属性或非0属性进行数据属性(RsqlConstants.WhereRuleOper.eq等于判断符)匹配查询并返回结果,如果没有查到,将返回model 功能有三
查询到唯一结果时,返回一个由当前数据库空间(RDBSpaceConfig#getDBBean(Class, Object))返回的一个存有数据库全量信息的代理bean。
 DbRvo query()
           
<T extends Modelable>
DbRvo
query(Class<T> clazz)
          container实现的核心方法之一。
<T extends Modelable>
DbRvo
query(Class<T> clazz, String fields)
           
<T extends Modelable>
DbRvo
query(DbCvo<T> dbCvo)
          container实现的核心方法之一。
<T extends Modelable>
T
queryBeanById(Class<T> clazz, Object idObject)
          根据传入的查询对象的类型及主键区查询唯一条数据
<T extends Modelable>
T
queryBeanByJpk(Class<T> clazz, String resultFields, String jpkFields, Object... valuesandLastErrorMsg)
          通过联合主键Join Primary Key(此处不对是否为联合主键进行检查,但在程序设计中需为联合主键)查询唯一的数据库bean。
<T extends Modelable>
DbRvo
queryByFields(Class<T> clazz, String resultFields, String constraintFields, Object... values)
           
<T extends Modelable>
DbRvo
queryById(Class<T> clazz, Object idObject)
          通过传入的类型clazz和主键id的值来查询其在数据库中对应的对象。
<T extends Modelable>
DbRvo
queryWithCollectionField(Class<T> clazz, String collectionField)
           
<T extends Modelable>
DbRvo
queryWithCollectionTree(Class<T> clazz, String[] collectionFields, String[] parentIds)
           
 void setSpaceName(String spaceName)
           
<T extends Modelable>
DbRvo
store(T obj)
          根据传入的T对象进行存储或更新
<T extends Modelable>
DbRvo
store(T obj, DbCvo<T> cvo)
          RsqlContainer C增加U更新D删除的核心方法。
<T extends Modelable>
DbRvo
store(T bean, String fields)
          根据指定fields的数据列进行保存或查看
<T extends Modelable>
DbRvo
storeBase(T bean)
          保存bean的基本数据列,外键及list集合都不保存
<T extends Modelable>
DbRvo
storeByJpk(T bean, String saveFields, String jpkFields, String moreOneErrorMsg)
          通过联合主键Join Primary Key(此处不论是否为联合主键进行检查,但在程序设计中需为联合主键)保存唯一的数据库bean。
<T extends Modelable>
DbRvo
updateByFields(T bean, String constraintFields)
          比如某对象Person p = new Person();
p.setName("name");
p.setPassword("password");
updateByFields(p,"name")指:
如果P存在主键id,或者依据fields 等于(eq) 数据中的值去数据库中查询,p已存在,则更新,否则不进行其他操作。
<T extends Modelable>
DbRvo
updateByFields(T bean, String saveFields, String constraintFields)
          比如某对象Person p = new Person();
p.setName("name");
p.setPassword("password");
updateByFields(p,"name")指:
如果P存在主键id,或者依据fields 等于(eq) 数据中的值去数据库中查询,p已存在,则更新,否则不进行其他操作。
<T extends Modelable>
DbRvo
updateByJpk(T bean, String saveFields, String jpkFields, String moreOneErrorMsg)
          通过联合主键Join Primary Key(此处不论是否为联合主键进行检查,但在程序设计中需为联合主键)更新存唯一的数据库bean,如果数据库没有也不新建。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

RsqlContainer

public RsqlContainer()
方法详细信息

createCall

public DbRvo createCall(String callSql)
从接口 Container 复制的描述
以callSql为SQL语句创建存储过程/函数等。

指定者:
接口 Container 中的 createCall
返回:
RsqlRvo

createBean

public <T extends Modelable> T createBean(Class<T> beanClass)
从接口 Container 复制的描述
创建一个受控的、代理的数据库Bean

指定者:
接口 Container 中的 createBean
返回:

createDbCvo

public <T extends Modelable> DbCvo<T> createDbCvo(Class<T> beanClass)
从接口 Container 复制的描述
创建一个数据查询的对象,进行链式访问

指定者:
接口 Container 中的 createDbCvo
返回:

delete

public <T extends Modelable> DbRvo delete(T o)
从接口 Container 复制的描述
从数据中删除对象o。

指定者:
接口 Container 中的 delete
参数:
o - 删除的对象
返回:
DbRvo

deleteById

public <T extends Modelable> DbRvo deleteById(Class<T> clazz,
                                              String id)
从接口 Container 复制的描述
根据传入的对象类型clazz和主键id删除数据

指定者:
接口 Container 中的 deleteById
返回:
DbRvo

deleteByIds

public <T extends Modelable> DbRvo deleteByIds(Class<T> clazz,
                                               String ids)
从接口 Container 复制的描述
根据ids批量删除数据

指定者:
接口 Container 中的 deleteByIds
ids - 多条记录的id主键,用","分隔
返回:
DbRvo

execute

public DbRvo execute(String sql,
                     HashMap<String,Object> params)
从接口 Container 复制的描述
根据传入的sql和参数对数据进行操作
如果string以"SQL_"开头则从spring的配置文件Rsql_SQL中获取真实的SQL。

指定者:
接口 Container 中的 execute
参数:
sql - 执行的sql语句,其中的where条件为命名参数形式,:
params - 主要为where条件中的命名参数和参数值的map
返回:
DbRvo

executeQuery

public RsqlRvo executeQuery(String sql,
                            HashMap<String,Object> params)
从接口 Container 复制的描述
根据传入的sql语句和参数执行数据库查询操作
如果string以"SQL_"开头则从spring的配置文件Rsql_SQL中获取真实的SQL。

指定者:
接口 Container 中的 executeQuery
参数:
sql - 执行的sql语句,其中的where条件为命名参数形式,:
params - 主要为where条件中的命名参数和参数值的map
返回:
RsqlRvo

executeUpdate

public RsqlRvo executeUpdate(String sql,
                             HashMap<String,Object> params)
从接口 Container 复制的描述
根据传入的sql语句和参数执行数据库更新操作
如果string以"SQL_"开头则从spring的配置文件Rsql_SQL中获取真实的SQL。

指定者:
接口 Container 中的 executeUpdate
参数:
sql - 执行的sql语句,其中的where条件为命名参数形式,:
params - 主要为where条件中的命名参数和参数值的map
返回:
RsqlRvo

exists

public <T extends Modelable> boolean exists(T obj,
                                            boolean forceCheckFromDB)
从接口 Container 复制的描述
判断dataStatus及通过RsqlContainer#getPK(Modelable)来检查是否在本数据库中存在该对象。

指定者:
接口 Container 中的 exists
参数:
obj - 需要检索的对象
forceCheckFromDB - 如果id存在,强制是否去数据库中判断该对象是否持久化
返回:
boolean 对象在数据中仅唯一存在则返回true
以下情况将返回false
  • obj == null
  • obj 没有getId() 和 setId()
  • obj 的属性id为空
  • obj 的属性id有值,但在数据库中不存在
  • dataStatus为RsqlConstants.DS_beanNew
    另请参见:
    RsqlContainer#getPK(Modelable)

  • existsModel

    public boolean existsModel(String beanName)
    指定者:
    接口 Container 中的 existsModel

    getSpaceName

    public String getSpaceName()

    list

    public <T extends Modelable> List<T> list(T model)
    从接口 Container 复制的描述
    根据非空属性或非0属性进行数据属性匹配查询并返回结果,如果没有查到,将返回size为0的new ArrayList()

    指定者:
    接口 Container 中的 list
    返回:
    List TargetType extends Modelable

    pickUp

    public <T extends Modelable> T pickUp(T model)
    从接口 Container 复制的描述
    根据非空属性或非0属性进行数据属性(RsqlConstants.WhereRuleOper.eq等于判断符)匹配查询并返回结果,如果没有查到,将返回model 功能有三
  • 查询到唯一结果时,返回一个由当前数据库空间(RDBSpaceConfig#getDBBean(Class, Object))返回的一个存有数据库全量信息的代理bean。
  • 指定者:
    接口 Container 中的 pickUp
    返回:
    TargetType

  • queryWithCollectionField

    public <T extends Modelable> DbRvo queryWithCollectionField(Class<T> clazz,
                                                                String collectionField)
    指定者:
    接口 Container 中的 queryWithCollectionField

    queryWithCollectionTree

    public <T extends Modelable> DbRvo queryWithCollectionTree(Class<T> clazz,
                                                               String[] collectionFields,
                                                               String[] parentIds)
    指定者:
    接口 Container 中的 queryWithCollectionTree

    query

    public <T extends Modelable> DbRvo query(Class<T> clazz)
    从接口 Container 复制的描述
    container实现的核心方法之一。

    指定者:
    接口 Container 中的 query
    返回:
    DbRvo
    另请参见:
    Container.query(java.lang.Class)

    query

    public DbRvo query()
    指定者:
    接口 Container 中的 query
    返回:

    query

    public <T extends Modelable> DbRvo query(Class<T> clazz,
                                             String fields)
    指定者:
    接口 Container 中的 query
    fields - 需要查询的列

    query

    public <T extends Modelable> DbRvo query(DbCvo<T> dbCvo)
    从接口 Container 复制的描述
    container实现的核心方法之一。

    指定者:
    接口 Container 中的 query
    返回:
    DbRvo
                    List<AfterSaleService> services = session.query(AfterSaleService.class,
                                    new SqldbCvo<AfterSaleService>() {
                            Override
                            public Class<?> initRules(AfterSaleService t) {
                                    String insuComName;
                                    for(ReqAddedService reqAddedService:reqService){
                                            insuComName = reqAddedService.getInsuComName();
                                            addRule(t.getInsuComName(), WhereRuleOper.eq,insuComName);
                                    }
                                    setGroupOp(WhereGroupOp.OR);
                                    return null;
                            }
                    }).obtainBeans(AfterSaleService.class);
     
    另请参见:
    Container.query(DbCvo)

    queryBeanById

    public <T extends Modelable> T queryBeanById(Class<T> clazz,
                                                 Object idObject)
    从接口 Container 复制的描述
    根据传入的查询对象的类型及主键区查询唯一条数据

    指定者:
    接口 Container 中的 queryBeanById
    返回:
    TargetType 如果数据库中没有则返回Null,返回的结果中包含所有bd、od列数据。

    queryById

    public <T extends Modelable> DbRvo queryById(Class<T> clazz,
                                                 Object idObject)
    从接口 Container 复制的描述
    通过传入的类型clazz和主键id的值来查询其在数据库中对应的对象。

    指定者:
    接口 Container 中的 queryById
    idObject - 代表ID的object
    返回:
    DbRvo

    obtainModelClass

    public Class<?> obtainModelClass(String beanName)
    指定者:
    接口 Container 中的 obtainModelClass

    store

    public <T extends Modelable> DbRvo store(T obj)
    从接口 Container 复制的描述
    根据传入的T对象进行存储或更新

    指定者:
    接口 Container 中的 store
    返回:
    DbRvo

    store

    public <T extends Modelable> DbRvo store(T obj,
                                             DbCvo<T> cvo)
    从接口 Container 复制的描述
    RsqlContainer C增加U更新D删除的核心方法。 根据传入的对象和cvo中的相关参数存储数据

    指定者:
    接口 Container 中的 store
    参数:
    obj - 存储的对象
    返回:
    DbRvo

    store

    public <T extends Modelable> DbRvo store(T bean,
                                             String fields)
    从接口 Container 复制的描述
    根据指定fields的数据列进行保存或查看

    指定者:
    接口 Container 中的 store
    fields - 用分号[;]将相关的列名隔开
    返回:
    DbRvo

    updateByFields

    public <T extends Modelable> DbRvo updateByFields(T bean,
                                                      String constraintFields)
    从接口 Container 复制的描述
    比如某对象Person p = new Person();
    p.setName("name");
    p.setPassword("password");
    updateByFields(p,"name")指:
    如果P存在主键id,或者依据fields 等于(eq) 数据中的值去数据库中查询,p已存在,则更新,否则不进行其他操作。
    注意:本方法将保存所有符合fields值匹配的记录,所有bean中的bd od数据列均会保存。

    指定者:
    接口 Container 中的 updateByFields
    constraintFields - 用";"分割的fields属性字符串。需要进行eq匹配的列。
    返回:
    如果是更新,此方法不会修改bean,如果是新增会将bean的id填充。

    storeBase

    public <T extends Modelable> DbRvo storeBase(T bean)
    从接口 Container 复制的描述
    保存bean的基本数据列,外键及list集合都不保存

    指定者:
    接口 Container 中的 storeBase
    返回:
    DbRvo

    copy

    public <T extends Modelable> DbRvo copy(DbCvo<T> cvo)
    指定者:
    接口 Container 中的 copy

    setSpaceName

    public void setSpaceName(String spaceName)
    指定者:
    接口 Container 中的 setSpaceName

    queryBeanByJpk

    public <T extends Modelable> T queryBeanByJpk(Class<T> clazz,
                                                  String resultFields,
                                                  String jpkFields,
                                                  Object... valuesandLastErrorMsg)
    从接口 Container 复制的描述
    通过联合主键Join Primary Key(此处不对是否为联合主键进行检查,但在程序设计中需为联合主键)查询唯一的数据库bean。
    如果结果集超过1条,则抛出异常,异常信息为最后一个参数。

    指定者:
    接口 Container 中的 queryBeanByJpk
    resultFields - 返回的列。如果为null则返回所有列bd、od列。
    jpkFields - 需要进行相等匹配的列,一次用[;]号隔开
    返回:
    TargetType 如果数据库中没有则返回Null

    queryByFields

    public <T extends Modelable> DbRvo queryByFields(Class<T> clazz,
                                                     String resultFields,
                                                     String constraintFields,
                                                     Object... values)
    指定者:
    接口 Container 中的 queryByFields
    resultFields - 需要查询出来的列,如果为null则返回所有
    constraintFields - 需要进行相等匹配的列,一次用[;]号隔开
    values - 依次为fields对应的值
    返回:
    返回的DbRvo中获取的bean对象仅包含resultFields的值。

    storeByJpk

    public <T extends Modelable> DbRvo storeByJpk(T bean,
                                                  String saveFields,
                                                  String jpkFields,
                                                  String moreOneErrorMsg)
    从接口 Container 复制的描述
    通过联合主键Join Primary Key(此处不论是否为联合主键进行检查,但在程序设计中需为联合主键)保存唯一的数据库bean。
    如果更新的结果集超过1条,则抛出异常,异常信息为最后一个参数。如果通过主键无法查询到,则新建一条记录。
    通过此方法可以实现因为查询 -> 更新而产生的竟态问题。

    指定者:
    接口 Container 中的 storeByJpk
    saveFields - 返回的列。如果为null则返回所有列bd、od列。
    jpkFields - 需要进行相等匹配的列,一次用[;]号隔开
    moreOneErrorMsg - 更新记录超过一条的异常信息。因为是主键更新,不应该出现多条记录的情况。
    返回:
    TargetType 如果数据库中没有则返回Null 此方法会返回id。

    updateByJpk

    public <T extends Modelable> DbRvo updateByJpk(T bean,
                                                   String saveFields,
                                                   String jpkFields,
                                                   String moreOneErrorMsg)
    从接口 Container 复制的描述
    通过联合主键Join Primary Key(此处不论是否为联合主键进行检查,但在程序设计中需为联合主键)更新存唯一的数据库bean,如果数据库没有也不新建。
    如果更新的结果集超过1条,则抛出异常,异常信息为最后一个参数。

    指定者:
    接口 Container 中的 updateByJpk
    saveFields - 返回的列。如果为null则返回所有列bd、od列。
    jpkFields - 需要进行相等匹配的列,一次用[;]号隔开
    moreOneErrorMsg - 更新记录超过一条的异常信息。因为是主键更新,不应该出现多条记录的情况。
    返回:
    此方法会返回id。

    updateByFields

    public <T extends Modelable> DbRvo updateByFields(T bean,
                                                      String saveFields,
                                                      String constraintFields)
    从接口 Container 复制的描述
    比如某对象Person p = new Person();
    p.setName("name");
    p.setPassword("password");
    updateByFields(p,"name")指:
    如果P存在主键id,或者依据fields 等于(eq) 数据中的值去数据库中查询,p已存在,则更新,否则不进行其他操作。
    注意:本方法将保存所有符合fields值匹配的记录。

    指定者:
    接口 Container 中的 updateByFields
    saveFields - 用";"分割的saveFields属性字符串。指定需要保存的列。
    constraintFields - 用";"分割的constraintFields属性字符串。需要进行eq匹配的列。
    返回:


    Copyright © 2016. All rights reserved.