DataRabbit 轻量的数据访问框架(07) -- ISPAccesser

简介: (完全限定类名:DataRabbit.Relation.ISPAccesser)       虽然IRelationAccesser可以调用一些不含out参数的存储过程,但是在DataRabbit中调用存储过程最好是通过ISPAccesser接口来进行。
   (完全限定类名:DataRabbit.Relation.ISPAccesser) 
   
   虽然IRelationAccesser可以调用一些不含out参数的存储过程,但是在DataRabbit中调用存储过程最好是通过ISPAccesser接口来进行。
   存储过程不仅可以有返回值,还可以有[in,out]参数,在对存储过程的调用进行封装之前,首先必须抽象存储过程的参数表示。DataRabbit使用SPParameter来表示存储过程的参数。

   注意,Name属性表示参数名,该参数名不需要带前缀(如"@"),DataRabbit在调用存储过程时会依据数据库的类型自动为其添加合适的参数前缀。

    我们可以从DataRabbit的入口点IDataAccesser中获取ISPAccesser引用: 
   ISPAccesser spAccesser  =  dataAccesser.GetSPAccesser( null );

    ISPAccesser接口中提供了两个方法以实现对存储过程的调用,其定义如下:
    public   interface  ISPAccesser : ITransactionAccesser
    {
        
///   <summary>
        
///  ExcuteNoneQuery 执行命令式的存储过程,可以输出out参数。
        
///   </summary>
        
///   <param name="spName"> 存储过程名称 </param>
        
///   <param name="parms"> 所有的[in]和[in,out]参数 </param>
        
///   <param name="outVals"> out参数的"名称-值"字典 </param>
         void  ExcuteNoneQuery( string  spName, IList < SPParameter >  parms,  out  IDictionary < string object >  outVals);

        
///   <summary>
        
///  ExcuteNoneQuery 执行查询式的存储过程,可以输出out参数。
        
///   </summary>
        
///   <param name="spName"> 存储过程名称 </param>
        
///   <param name="parms"> 所有的[in]和[in,out]参数 </param>
        
///   <param name="outVals"> out参数的"名称-值"字典 </param>
        DataSet ExcuteQuery( string  spName, IList < SPParameter >  parms,  out  IDictionary < string object >  outVals);        
    }
   代码的注释已经很好的解释了一切,就不再赘言了。

   假设,我们现在要调用 复制SqlServer数据库 一文中描述的存储过程,可以这样做:
                IList < SPParameter >  paraList  =   new  List < SPParameter > ();
                SPParameter para1 
=   new  SPParameter( " newDbName " , ParameterDirection.Input,  " EASNew9 " );
                paraList.Add(para1);
                SPParameter para2 
=   new  SPParameter( " dbDataDirPath " , ParameterDirection.Input,  @" C:\Program Files\Microsoft SQL Server\MSSQL\Data\ " );
                paraList.Add(para2);
                SPParameter para3 
=   new  SPParameter( " soureDbName " , ParameterDirection.Input,  " AutoSchedulerSystem " );
                paraList.Add(para3);
                SPParameter para4 
=   new  SPParameter( " soureBackupFilePATH " , ParameterDirection.Input,  @" d:\sqlDatabase\AutoSchedulerSystem2 " );
                paraList.Add(para4);
                IDictionary
< string object >  outParas  =   null ;

                spAccesser
.ExcuteNoneQuery( " CopyDB " , paraList,  out  outParas);


转到: DataRabbit 轻量的数据访问框架 -- 序 
目录
相关文章
|
XML 数据可视化 Java
非常轻量、高性能、可集成、可扩展的流程引擎compileflow
compileflow Process引擎是淘宝工作流TBBPM引擎之一,是专注于纯内存执行,无状态的流程引擎,通过将流程文件转换生成java代码编译执行,简洁高效。当前是阿里业务中台交易等多个核心系统的流程引擎。
tp框架事务处理实例和理解
tp框架事务处理实例和理解
143 0
|
数据库连接 数据库 负载均衡
DataRabbit 轻量的数据访问框架(19)-- 读写分离与隔离级别
在高并发的系统中,我们常采用多数据库分散放置、读写分离、细粒度的隔离级别设定等策略来提高系统的性能。DataRabbit3.3 以及以上版本对这三种策略都给予了内置的支持。 (1)数据库分散放置:对于较大型的系统,在设计数据库时,我们可以根据业务范围将其设计为多个数据库,而不是一个,然后将这些数据库部署在不同的物理服务器上,以分担负载。
833 0
|
数据库 Java Spring
DataRabbit 轻量的ORM框架(17)-- 使用DataRabbit的最佳实践
在DataRabbit 轻量的数据访问框架(12)-- 将DataRabbit融入架构 一文中介绍了如何将DataRabbit与三层架构结合起来,但是,在实际的项目中,每一层是如何使用DataRabbit的了?本文将展示作者在项目中使用DataRabbit的标准做法。
690 0
|
SQL 数据库
DataRabbit 轻量的ORM框架(18)-- 捕获数据库访问异常的详细信息
最新版本的DataRabbit(版本号:V3.2)新增一项重要功能--可以捕获访问数据库时产生的异常的详细信息,包括:异常对象、Sql语句、sql参数的名称和值。这是由IDBOperationLogger接口提供支持的。
830 0
|
索引 缓存
DataRabbit 轻量的数据访问框架(10) -- IPagerManager
(完全限定类名:DataRabbit.Core.IPagerManager)   DataRabbit框架提供了对单表查询的结果进行分页的功能,这就是IPagerManager所完成的目标。我们可以从DataRabbit的入口点IDataAccesser中获取IPagerManager引用:     PagerParameters param = .
792 0
|
关系型数据库 数据库 Oracle
DataRabbit 轻量的数据访问框架(06) -- IRelationAccesser
(完全限定类名:DataRabbit.Relation.IRelationAccesser)       前面介绍的IOrmAccesser是对单表进行ORM访问,而ITableAccesser是对单表进行基于关系的访问,如果我们要进行联合查询这样的跨表搜索,则使用它们就无法达成目标。
918 0
|
SQL 数据库
DataRabbit 轻量的数据访问框架(02) -- IOrmAccesser
(完全限定类名:DataRabbit.ORM.IOrmAccesser)      在DataRabbit框架中,通过IOrmAccesser来对数据库进行ORM访问,只要Entity(即ORM中的“O”)的定义与数据库表的结构完全一致,即可使用IOrmAccesser来对其进行ORM操作。
922 0