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

简介: 1. 数据库操作接口 IDbHelper 代码 /** *  * 2009-4-22 *  *  * 提供各种数据库操作方法以及实体类操作方法 * */using System;using System.

 

1. 数据库操作接口 IDbHelper

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

 


  未完(续)

相关文章
|
6月前
|
SQL Java 数据库连接
myabtis中为什么说 MyBatis 是半自动 ORM 映射工具?它与全自动的区别在哪里
myabtis中为什么说 MyBatis 是半自动 ORM 映射工具?它与全自动的区别在哪里
|
SQL 关系型数据库 API
ORM对象关系数据库映射
ORM对象关系数据库映射
ORM对象关系数据库映射
|
SQL
ORM映射框架总结--数据操作(四)
1.BaseEntityHelper 解析实体类特性 代码   1 /**  2  *   3  * 2009-4-17  4  *   5  *   6  * 字段的特性  7  * */  8 using System;  9 using System.
784 0
|
存储 SQL 数据库
ORM映射框架总结--数据操作(七)
2. 数据库操作实现类 SqlHelper 代码 /** *  * 2009-4-22 *  *  * 数据库操作的公共类 * */using System;using System.Collections.
697 0
|
数据库连接 数据库
ORM映射框架总结--数据操作(五)
1.数据库加载驱动和操作接口 IDbProvider 代码  1 /** 2  *  3  * 2009-4-22 4  *  5  *  6  * 数据库操作加载驱动接口,  7  * 提供了数据库操作的各种命令  8  * */ 9 using System;10 using System.
797 0
|
SQL 存储 .NET
ORM映射框架总结--数据库操作库(精修版)
1.       ORM数据库操作原理 前面已经介绍过了个人ORM映射框架中的三个核心库: 实体—数据库 映射特性关系: http://www.cnblogs.com/qingyuan/archive/2010/04/02/1702998.
1395 0
|
SQL 安全 数据库
ORM映射框架总结--代码生成器
年前发布了一些文章,是关于.NET数据操作(点击查看)的。刚开始学习编程的时候,总感觉Java中的Hibernate 功能好强大,现在也不可否认它的确强大,特别是它在数据关系处理上,却是那样的让人称叹。
1264 0
|
Web App开发
ORM映射框架总结--Excel 操作
  在很多时候,我们需要将查询的数据做成报表统计,然后生成Excel文档格式的。再此提供了将DataTable 数据导出excel 的方法   代码   1 /**  2  *   3  * 2009-5-2  4  *   5  *   6  * 将DataTable导出为excel文件  7  * */  8 using System;  9 using System.
903 0
|
移动开发 监控 .NET
ORM映射框架总结--日志处理
  在我们做项目的过程中,日志跟踪异常是非常必要的,当程序发布到服务器上时,如果出现异常直接抛出给用户这是非常不友好的。对于不懂程序的用户来说,这回让人感觉莫名其妙,对于那些程序高手,可能就是攻破这个网站的关键。
739 0