PrideORM框架设计(一)--数据访问层的设计

  在介绍ORM框架之前,先介绍一下数据访问层的设计。数据访问层是ORM框架的基础,ORM只是封装了数据的访问操作而已。我是根据.net提供的数据库访问对象把数据库划分为三类的:

Code
/// <summary>
/// 数据库类型
/// </summary>
public enum DataBaseType
{
SqlServer,
Oracle,
OleDb
}

除去SqlServer和Oracle,其它的数据库都归为OleDb。数据访问层采用了工厂模式,根据参数创建对应的数据访问类,工厂代码如下:

 

DBHelperFactory
public class DBHelperFactory
{
public static string ConnectionString { get; set; }
public static DataBaseType dbType { get; set; }

static DBHelperFactory()
{
dbType
= DataBaseType.SqlServer;
}

/// <summary>
/// 根据数据库连接字符串名生成数据库访问类
/// </summary>
/// <param name="connectionName"></param>
/// <returns></returns>
public static IDBHelper CreateDBHelper(string connectionName)
{
///从配置文件中获取数据库连接字符串
ConnectionString = ConfigurationManager.ConnectionStrings[connectionName].ConnectionString;

switch (dbType)
{
case DataBaseType.SqlServer:
return new SqlDBHelper(ConnectionString);
case DataBaseType.Oracle:
return new OracleDBHelper(ConnectionString);
case DataBaseType.OleDb:
return new OleDbHelper(ConnectionString);
default:
return null;
}
}
}

 

数据访问对象是根据设置的数据库类型和传入的数据库连接字符串名创建的,也就是说,在一个项目中,可以使用多个不同类型的数据库,默认使用的是SqlServer数据库。各数据访问类继承统一的接口:

IDBHelper
public interface IDBHelper
{
/// <summary>
/// SQL语句
/// </summary>
string CommandText { get; set; }
/// <summary>
/// 返回多条数据记录
/// </summary>
/// <returns></returns>
DataTable ExecuteDataTable();
/// <summary>
/// 返回单条数据记录
/// </summary>
/// <returns></returns>
DataRow ExecuteDataRow();
int ExecuteNonQuery();
object ExecuteScalar();
/// <summary>
/// 添加参数
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
void AddParameter(string key, object value);
}

 

 代码很简单,就不多作解释了,大家可以看源码,基本都有注释的。现在看一下数据访问层的使用:

 

Code
public DataTable GetDataTable(string name)
{
///设置数据库的类型
DBHelperFactory.dbType = DataBaseType.SqlServer;
///创建数据访问类
IDBHelper dbHelper = DBHelperFactory.CreateDBHelper("ConnectionString");
string sql = "select * from Products where name=@name";
dbHelper.CommandText
= sql;
///添加参数
dbHelper.AddParameter("@name", name);
return dbHelper.ExecuteDataTable();
}

使起来用就是这么的简单,很直观。

ORM框架的内容比较多,要断网了,真不方便啊,用的是隔壁的交换机,别人要睡觉了。最近在做一个项目,比较忙,明天晚上又要加班了。现在把数据访问层的源码附上,下次再介绍ORM框架的设计。本人喜欢原创,虽然没有别人的框架那么好,那么灵活,功能那么强大,但我用着开心。

DBAccesser.rar数据访问层

 

 

转载于:https://www.cnblogs.com/reallypride/archive/2008/09/22/1296281.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值