ORM映射框架总结--数据操作(六)
2010-01-02 13:50 贺臣 阅读(1236) 评论(0) 编辑 收藏 举报
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<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<string, object> dic, out IDataParameter[] param);
string CreateQueryByPropertySql(Type type, Dictionary<string, object> dic, out IDataParameter[] param);
根据属性名称创建sql语句
IEntity entity 实体类的公共接口
Type type 实体的类型
string propertyName 属性名称
object value 属性值
Dictionary<string, object> 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 实体属性值
未完(续)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架