• 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             实体属性值


      未完(续)

  • 相关阅读:
    Python全栈之路-Day40
    Python全栈之路-Day39
    Python全栈之路-Day38
    Python全栈之路-Day37
    Python全栈之路-Day36
    Python全栈之路-Day34
    Python全栈之路-Day33
    Python全栈之路-Day32
    深入理解urllib、urllib2及requests
    win10中的vmware桥接模式异常,不能设置同网段ip
  • 原文地址:https://www.cnblogs.com/qingyuan/p/1637817.html
Copyright © 2020-2023  润新知