cn.remex.db
接口 Container

所有已知实现类:
RsqlContainer

public interface Container

作者:
zhangaiguo 数据库操作的接口类

方法摘要
<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 idObject)
          根据传入的对象类型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。
 DbRvo executeQuery(String sql, HashMap<String,Object> params)
          根据传入的sql语句和参数执行数据库查询操作
如果string以"SQL_"开头则从spring的配置文件Rsql_SQL中获取真实的SQL。
 DbRvo 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)
           
<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 resultFields)
           
<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 poolName)
           
<T extends Modelable>
DbRvo
store(T o)
          根据传入的T对象进行存储或更新
<T extends Modelable>
DbRvo
store(T o, 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,如果数据库没有也不新建。
 

方法详细信息

createCall

DbRvo createCall(String callSql)
以callSql为SQL语句创建存储过程/函数等。

参数:
callSql -
返回:
RsqlRvo

createBean

<T extends Modelable> T createBean(Class<T> beanClass)
创建一个受控的、代理的数据库Bean

参数:
beanClass -
返回:

createDbCvo

<T extends Modelable> DbCvo<T> createDbCvo(Class<T> beanClass)
创建一个数据查询的对象,进行链式访问

类型参数:
T -
参数:
beanClass -
返回:

delete

<T extends Modelable> DbRvo delete(T o)
从数据中删除对象o。

参数:
o - 删除的对象
返回:
DbRvo

deleteById

<T extends Modelable> DbRvo deleteById(Class<T> clazz,
                                       String idObject)
根据传入的对象类型clazz和主键id删除数据

参数:
clazz -
idObject -
返回:
DbRvo

deleteByIds

<T extends Modelable> DbRvo deleteByIds(Class<T> clazz,
                                        String ids)
根据ids批量删除数据

参数:
clazz -
ids - 多条记录的id主键,用","分隔
返回:
DbRvo

execute

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

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

executeQuery

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

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

executeUpdate

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

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

exists

<T extends Modelable> boolean exists(T obj,
                                     boolean forceCheckFromDB)
判断dataStatus及通过RsqlContainer#getPK(Modelable)来检查是否在本数据库中存在该对象。

参数:
obj - 需要检索的对象
forceCheckFromDB - 如果id存在,强制是否去数据库中判断该对象是否持久化
返回:
boolean 对象在数据中仅唯一存在则返回true
以下情况将返回false
  • obj == null
  • obj 没有getId() 和 setId()
  • obj 的属性id为空
  • obj 的属性id有值,但在数据库中不存在
  • dataStatus为RsqlConstants.DS_beanNew
    抛出:
    Exception -
  • 如果数据库查询有错误
  • 或者本对象所对应的类在数据中持久化的表中的数据有重复项将会跑出异常
    如果数据中同样id的数据存在多条则数据完整性及结构存在问题
    默认有RsqlCore.reset(boolean...) 方法创建的数据库结构是不会出现该问题的, 一旦出现问题说明有人在程序外修改了数据结构。
    另请参见:
    RsqlContainer#getPK(Modelable)

  • existsModel

    boolean existsModel(String beanName)

    list

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

    参数:
    model -
    返回:
    List TargetType extends Modelable

    obtainModelClass

    Class<?> obtainModelClass(String beanName)

    pickUp

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

  • query

    <T extends Modelable> DbRvo query(Class<T> clazz)
    container实现的核心方法之一。

    参数:
    clazz -
    返回:
    DbRvo
    另请参见:
    query(java.lang.Class)

    query

    <T extends Modelable> DbRvo query(DbCvo<T> dbCvo)
    container实现的核心方法之一。

    参数:
    dbCvo -
    返回:
    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);
     
    另请参见:
    query(DbCvo)

    query

    <T extends Modelable> DbRvo query(Class<T> clazz,
                                      String resultFields)
    类型参数:
    T -
    参数:
    clazz -
    resultFields - 需要查询的列

    queryBeanById

    <T extends Modelable> T queryBeanById(Class<T> clazz,
                                          Object idObject)
    根据传入的查询对象的类型及主键区查询唯一条数据

    参数:
    clazz -
    idObject -
    返回:
    TargetType 如果数据库中没有则返回Null,返回的结果中包含所有bd、od列数据。

    queryBeanByJpk

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

    参数:
    clazz -
    resultFields - 返回的列。如果为null则返回所有列bd、od列。
    jpkFields - 需要进行相等匹配的列,一次用[;]号隔开
    values - 依次为jpkFields对应的值
    返回:
    TargetType 如果数据库中没有则返回Null

    queryById

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

    参数:
    clazz -
    idObject - 代表ID的object
    返回:
    DbRvo
    抛出:
    Exception

    queryByFields

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

    queryWithCollectionField

    <T extends Modelable> DbRvo queryWithCollectionField(Class<T> clazz,
                                                         String collectionField)

    queryWithCollectionTree

    <T extends Modelable> DbRvo queryWithCollectionTree(Class<T> clazz,
                                                        String[] collectionFields,
                                                        String[] parentIds)

    setSpaceName

    void setSpaceName(String poolName)
    参数:
    poolName -

    store

    <T extends Modelable> DbRvo store(T o)
    根据传入的T对象进行存储或更新

    参数:
    o -
    返回:
    DbRvo

    store

    <T extends Modelable> DbRvo store(T o,
                                      DbCvo<T> cvo)
    RsqlContainer C增加U更新D删除的核心方法。 根据传入的对象和cvo中的相关参数存储数据

    参数:
    o - 存储的对象
    cvo -
    返回:
    DbRvo

    store

    <T extends Modelable> DbRvo store(T bean,
                                      String fields)
    根据指定fields的数据列进行保存或查看

    参数:
    bean -
    fields - 用分号[;]将相关的列名隔开
    返回:
    DbRvo

    storeByJpk

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

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

    updateByJpk

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

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

    updateByFields

    <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已存在,则更新,否则不进行其他操作。
    注意:本方法将保存所有符合fields值匹配的记录。

    参数:
    bean -
    saveFields - 用";"分割的saveFields属性字符串。指定需要保存的列。
    constraintFields - 用";"分割的constraintFields属性字符串。需要进行eq匹配的列。
    返回:

    updateByFields

    <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已存在,则更新,否则不进行其他操作。
    注意:本方法将保存所有符合fields值匹配的记录,所有bean中的bd od数据列均会保存。

    参数:
    bean -
    constraintFields - 用";"分割的fields属性字符串。需要进行eq匹配的列。
    valuesandLastErrorMsg - 需要匹配的值,最后一个为异常信息,可以不传。
    返回:
    如果是更新,此方法不会修改bean,如果是新增会将bean的id填充。

    storeBase

    <T extends Modelable> DbRvo storeBase(T bean)
    保存bean的基本数据列,外键及list集合都不保存

    参数:
    bean -
    返回:
    DbRvo

    copy

    <T extends Modelable> DbRvo copy(DbCvo<T> cvo)

    query

    DbRvo query()
    返回:


    Copyright © 2016. All rights reserved.