编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

软件架构设计基础知识之数据驱动(数据驱动程序优缺点)

wxchong 2024-07-16 10:07:46 开源技术 130 ℃ 0 评论

在我们面开发或者程序设计时,都接触过如SqlHelper、MySqlHelper、OraceHelper等数据访问层。数据访问层是程序和数据库之间的桥梁,如果想要连接数据库需要打开SqlConnection 等连接对象,一个种数据库就需要单独写一个数据访问层,如果系统再扩展就会使开发人员和系统不堪重负。


为了解决多个数据库访问的问题官方提供了一个DbProviderFactory接口。


本章我们介绍DbProviderFactory数据库提供者工厂。

DbProviderFactory数据库连接工厂



如图所示,

1.DbProviderFactory 是一个抽象类,在 System.Data.Common命名空间。

2.提供了DbConnection、DbCommand、DbDataAdapter、DbConnectionStringBuilder等对象,这些对象是连接数据库的基本对象。

3.MSSQL、MySql、Sqlite、Orace等连接都是继承自DbConnection,增删改查的对象继承自DbCommand。

4. MSSQL、MySql等都会继承这个类。如System.Data.SqlClient.dll MSSQL的数据驱动可以在此模块下得到数据库工厂的实例。

DbProviderFactory是一个高度抽象类,我们做开发时完全可以面向DbProviderFactory完成数据层的设计。

代码示例

以数据库连接工厂创建MSSQL数据访问层为例。MSSQL的数据驱动为System.Data.SqlClient.dll,从驱动中等到数据库工厂实例。


DbProviderFactory有两种获取方式:

1.在App.config配置连接,通过DbProviderFactories.GetFactory("System.Data.SqlClient");

如果是单机项目,或者客户端项目 数据库操作比较固定可以使用第一种方式,这种是配置操作简单

2.通过反射从System.Data.SqlClient.dll驱动中获取,这种方式比较灵活,适合系统中使用多数据库操作


我们以反射方式获取数据库抽象类



图中创建了MSSQL的数据库连接,SQLite、MySql、Orace等依赖于数据库连接工厂接口,我们在做程序设计时面向接口设计,使数据驱动伸缩性更强。

总结

MSSQl、MySql、Orace等都可以面向数据库工厂设计数据层,不再依赖具体SqlConntion、SqliteConn等对象。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表