ORM映射框架总结--数据操作(六)

 

1. 数据库操作接口 IDbHelper

ExpandedBlockStart.gif 代码
/* *
 * 
 * 2009-4-22
 * 
 * 
 * 提供各种数据库操作方法以及实体类操作方法
 * 
*/
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Text;
using  CommonData.Model;
using  System.Data;

namespace  CommonData.Data
{
    
public   interface  IDbHelper:IDisposable
    {
        
// 对数据库进行操作

        
int  ExecuteNonQuery(IDbProvider provider, string  sqlString);

        
int  ExecuteNonQuery(IDbProvider provider,  string  sqlString,  bool  isProcedure);

        
int  ExecuteNonQuery(IDbProvider provider, string  sqlString, params  IDataParameter[] param);

        
int  ExecuteNonQuery(IDbProvider provider,  string  sqlString, bool  isProcedure,  params  IDataParameter[] param);

        
object  ExecuteScalar(IDbProvider provider, string  sqlString);

        
object  ExecuteScalar(IDbProvider provider,  string  sqlString,  bool  isProcedure);

        
object  ExecuteScalar(IDbProvider provider, string  sqlString, params  IDataParameter[] param);

        
object  ExecuteScalar(IDbProvider provider,  string  sqlString, bool  isProcedure, params  IDataParameter[] param);

        IDataReader ExecuteDataReader(IDbProvider provider,
string  sqlString);

        IDataReader ExecuteDataReader(IDbProvider provider, 
string  sqlString,  bool  isProcedure);

        IDataReader ExecuteDataReader(IDbProvider provider, 
string  sqlString,  params  IDataParameter[] param);

        IDataReader ExecuteDataReader(IDbProvider provider, 
string  sqlString,  bool  isProcedure,  params  IDataParameter[] param);

        DataTable ExecuteTable(IDbProvider provider,
string  sqlString);

        DataTable ExecuteTable(IDbProvider provider, 
string  sqlString,  bool  isProcedure);

        DataTable ExecuteTable(IDbProvider provider,
string  sqlString, params  IDataParameter[] param);

        DataTable ExecuteTable(IDbProvider provider, 
string  sqlString, bool  isProcedure,  params  IDataParameter[] param);

        
// 创建DataParameter参数
        IDataParameter CreateParameter( string  name);

        IDataParameter CreateParameter(
string  name, object  value);

        IDataParameter CreateParameter(
string  name,DataType type, object  value);

        IDataParameter CreateParameter(
string  name,DataType type, int  size);

        IDataParameter CreateParameter(
string  name,DataType type, int  size, object  value);

        IDataParameter CreateParameter(
string  name,DataType type);

        
// 对实体进行操作 (有部分不可用)
         string  CreateInsertSql(IEntity entity, out  IDataParameter[] param);

        
string  CreateUpdateSql(IEntity entity, out  IDataParameter[] param);

        
string  CreateDeleteSql(IEntity entity, out  IDataParameter[] param);

        
string  CreateSingleSql(IEntity entity, ref  IDataParameter[] param);

        
string  CreateSingleSql(Type type,  ref  IDataParameter[] param);

        
string  CreateSingleSql(IEntity entity);

        
string  CreateSingleSql(Type type);

        
string  CreateQueryByPropertySql(IEntity entity,  string  propertyName,  object  value,  out  IDataParameter[] param);

        
string  CreateQueryByPropertySql(Type type,  string  propertyName,  object  value,  out  IDataParameter[] param);

        
string  CreateQueryByPropertySql(IEntity entity, Dictionary < string object >  dic,  out  IDataParameter[] param);

        
string  CreateQueryByPropertySql(Type type, Dictionary < string object >  dic,  out  IDataParameter[] param);

        
string  CreateQueryCountSql(IEntity entity,  string  propertyName,  object  value,  out  IDataParameter[] param);

        
string  CreateQueryCountSql(IEntity entity);

        
string  CreateQueryPageSql(IEntity entity,CommonPage page);

        
string  CreateQueryPageSql(Type type, CommonPage page);

        T ConvertToEntity
< T > (IDataReader reader);

        IList
< T >  ConvertToList < T > (IDataReader reader);

        
// 反射实体属性

        Object GetPropertyValue(IEntity entity,
string  name);

        T GetPropertyValue
< T > (IEntity entity, string  name);

        
void  SetPropertyValue(IEntity entity, string  name, object  value);
    }
}

 

  int ExecuteNonQuery(IDbProvider provider, string sqlString,bool isProcedure, params IDataParameter[] param);
  这个方法一般用于查询聚合函数返回的结果集。

  IDbProvider provider                            数据库提供加载驱动

  string sqlString                                   sql语句

  bool isProcedure                                  是否为存储过程,默认为false 不是存储过程

  params IDataParameter[] param        sql 语句占位符参数

 

 

  object ExecuteScalar(IDbProvider provider, string sqlString,bool isProcedure,params IDataParameter[] param);

  这个方法主要用于查询返回一行一列的结果
  IDbProvider provider                            数据库提供加载驱动

  string sqlString                                   sql语句

  bool isProcedure                                  是否为存储过程,默认为false 不是存储过程

  params IDataParameter[] param        sql 语句占位符参数

 

 

  IDataReader ExecuteDataReader(IDbProvider provider, string sqlString, bool isProcedure, params IDataParameter[] param);

  这个方法主要用于查询结果集返回只读流结果集

  IDbProvider provider                            数据库提供加载驱动

  string sqlString                                   sql语句

  bool isProcedure                                  是否为存储过程,默认为false 不是存储过程

  params IDataParameter[] param        sql 语句占位符参数

 

 

  DataTable ExecuteTable(IDbProvider provider, string sqlString,bool isProcedure, params IDataParameter[] param);

  这个主要用于查询返回DataTable 结果集

  IDbProvider provider                            数据库提供加载驱动

  string sqlString                                   sql语句

  bool isProcedure                                  是否为存储过程,默认为false 不是存储过程

  params IDataParameter[] param        sql 语句占位符参数


  IDataParameter CreateParameter(string name,DataType type,int size,object value);

  这个方法主要用于创建占位符参数
  string name             占位符名称

  DataType type           占位符参数类型,DataType 是之前的枚举类型

  int size               数据长度

    object value            占位符参数

 

 

  string CreateInsertSql(IEntity entity,out IDataParameter[] param);

  这个方法用于创建插入sql语句

  IEntity entity            实体类的公共接口

  out IDataParameter[] param    这个参数用于定位参数值, out,ref 修饰的值类型参数可以再另一个方法中修改保存

      
string CreateUpdateSql(IEntity entity,out IDataParameter[] param);

  这个方法用于创建修改sql语句

  IEntity entity            实体类的公共接口

  out IDataParameter[] param    这个参数用于定位参数值, out,ref 修饰的值类型参数可以再另一个方法中修改保存



      string CreateDeleteSql(IEntity entity,out IDataParameter[] param);

  这个方法用于创建删除sql语句

  IEntity entity            实体类的公共接口

  out IDataParameter[] param    这个参数用于定位参数值, out,ref 修饰的值类型参数可以再另一个方法中修改保存



      string CreateSingleSql(IEntity entity,ref IDataParameter[] param);
      
string CreateSingleSql(Type type, ref IDataParameter[] param);
      
string CreateSingleSql(IEntity entity);
      
string CreateSingleSql(Type type);

  这几个方法用于创建查询一条sql语句

  IEntity entity            实体类的公共接口

  Type type             实体的类型

  ref IDataParameter[] param    这个参数用于定位参数值, out,ref 修饰的值类型参数可以再另一个方法中修改保存


 

  string CreateQueryByPropertySql(IEntity entity, string propertyName, object value, out IDataParameter[] param);
     
string CreateQueryByPropertySql(Type type, string propertyName, object value, out IDataParameter[] param);
      
string CreateQueryByPropertySql(IEntity entity, Dictionary<stringobject> dic, out IDataParameter[] param);
      
string CreateQueryByPropertySql(Type type, Dictionary<stringobject> dic, out IDataParameter[] param);

  根据属性名称创建sql语句

  IEntity entity            实体类的公共接口

  Type type             实体的类型

  string propertyName        属性名称

  object value            属性值

  Dictionary<stringobject> dic     存储多个属性键值对

  out IDataParameter[] param    这个参数用于定位参数值, out,ref 修饰的值类型参数可以再另一个方法中修改保存

 

 

  string CreateQueryCountSql(IEntity entity, string propertyName, object value, out IDataParameter[] param);
      
string CreateQueryCountSql(IEntity entity);

  这个方法用于创建查询sql语句行数

  IEntity entity            实体类的公共接口

  string propertyName        属性名称

  object value            属性值

  out IDataParameter[] param    这个参数用于定位参数值, out,ref 修饰的值类型参数可以再另一个方法中修改保存

 

  

  string CreateQueryPageSql(IEntity entity,CommonPage page);
  string CreateQueryPageSql(Type type, CommonPage page);

  这个方法用于创建sql分页语句

  IEntity entity            实体类的公共接口

  Type type             实体的类型

  CommonPage page                        分页对象



 

  T ConvertToEntity<T>(IDataReader reader);

  这个方法用于将只读流转化为实体类型

  IDataReader reader       只读数据流结果集

 


     IList<T> ConvertToList<T>(IDataReader reader);

  这个方法用于将只读流转化为实体集合类型

  IDataReader reader       只读数据流结果集

 

 

  Object GetPropertyValue(IEntity entity,string name);

  获得某实体某属性的值

  IEntity entity            实体类的公共接口

  string name             属性名称

  

      T GetPropertyValue
<T>(IEntity entity,string name);

  获得某实体某属性的值

  IEntity entity            实体类的公共接口

  string name             属性名称



      void SetPropertyValue(IEntity entity,string name,object value);
  给某实体某属性赋值

  IEntity entity            实体类的公共接口

  string name             属性名称

  object value             实体属性值

 


  未完(续)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值