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

1. 数据库操作接口 IDbHelper

代码
/**
 * 
 * 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<stringobject> dic, out IDataParameter[] param);

        
string CreateQueryByPropertySql(Type type, Dictionary<stringobject> 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             实体属性值


  未完(续)

原文地址:https://www.cnblogs.com/qingyuan/p/1637817.html