PetShop是如何兼容不同数据库的
来源:互联网 发布:产品经理必备软件 编辑:程序博客网 时间:2024/05/19 21:43
数据库的移植通常会带来高额的代价。这一点我深有体会。代价的大小就要看程序的架构写的怎么样了. 去年把一个项目从MySQL移至到Oracle, 整个程序里里外外都做了修修补补,大概花了两个月。
如果做到少修改,甚至不修改代码的前提下,对数据库的兼容无疑是一件非常好的事情,
PetShop很好的做到了这一点
要兼容多种数据库,首先要实现多态。SQLServerDAL和OracleDAL都实现了IDAL里所有接口的方法,实现了多态性。
FactoryDAL用来创建DAL对象,
public static PetShop.IDAL.IAccount Create()
{
/// Look up the DAL implementation we should be using
string path = System.Configuration.ConfigurationSettings.AppSettings["WebDAL"];
string className = path + ".Account";
// Using the evidence given in the config file load the appropriate assembly and class
return (PetShop.IDAL.IAccount) Assembly.Load(path).CreateInstance(className);
}
如上:创建Account, 首先获取Web.config 中的WebDAL的值。
<add key="WebDAL" value="PetShop.SQLServerDAL" />
Web.Config里”WebDAL”的值是PetShop.SQLServerDAL,该值决定了所要创建的DAL的路径。
然后再用Assembly.CreateInstance()创建DAL实例.
若要使用Oracle数据库, 只要把
<add key="WebDAL" value="PetShop.SQLServerDAL" />和
<add key="OrdersDAL" value="PetShop.SQLServerDAL" />
中的PetShop.SqlServerDAL改为PetShop.OracleDAL就可以了。
而在BLL中,它不需要知道你使用那个数据库。只是通过如下语句得到对象。
// Get an instance of the account DAL using the DALFactory
IAccount dal = PetShop.DALFactory.Account.Create();
无论使用什么数据库,BLL模块都不需要修改。
扩展性: 若要兼容MySQL数据库改怎么办?
写一个MySQLDAL模块,实现IDAL里所有接口的方法。 再修改Web.config中的值即可。
PetShop提供了良好的可扩展性, 封闭了业务层的修改。很好的满足了OCP(开放-封闭原则).
- PetShop是如何兼容不同数据库的
- PetShop是如何兼容不同数据库的
- PetShop是如何兼容不同数据库的
- PetShop是如何兼容数据库的
- mybatis写兼容不同数据库的sql
- 不同浏览器的JS如何兼容?
- 如何让CSS的标签兼容不同的浏览器
- 如何开发兼容Access数据库的程序
- 如何不同的是javascript中的Java
- 如何不同的是javascript中的Java
- 如何是iframe的背景透明兼容IE6
- 如何比较mysql数据库结构的不同?
- 仿Petshop写的数据库操作类
- .Net PetShop 4.0的分布式数据库设计
- .Net PetShop 4.0的分布式数据库设计
- .Net PetShop 4.0的分布式数据库设计
- .Net PetShop 4.0的分布式数据库设计
- .Net PetShop 4.0的分布式数据库设计
- DataGrid技巧大集合(转载)
- 【转载】样式表CSS简明教程
- MSSQL优化之————探索MSSQL执行计划
- 【转载】怎样编写CSS?
- ASP使用流输出文件下载
- PetShop是如何兼容不同数据库的
- 人生感悟——25句心灵鸡汤
- 我的Borland五年——李维 / 文
- 学习资料zz
- 終極解決“Visual Studio .NET 偵測到您的Web伺服器不是ASP .NET 1.1 版,您將無法執行Asp .NET的應用程式或服務。”
- 在java中CreateProcess出现的异常的处理(备忘)
- ASCII码
- .NET三层经典架构PetShop3.0分析连载一
- MS-SQL数据库开发常用汇总和t-sql技巧集锦