admin 管理员组文章数量: 1184232
2024年3月28日发(作者:sql语句范例)
维普资讯
第21卷 第6期
V01.21
No.6
重庆工学院学报(自然科学版)
Journal of Chongqing Institute ofTechnology(Natural Science Edition)
2007年6月
Jun.2007
【计算机与信息工程】
基于设计模式 的“.Net” 数据库访问接口设计
唐鑫 ,郭永强b
(重庆工学院a.现代教育技术中心;b.教务处,重庆400050)
!矫 牢 字 幂 尔 乔 带 带 秘 乖 彳 绵
摘要:通过对ADO.Net数据访问机制的分析,结合Abstract Factory(抽象工厂)、Factory Method(工厂
方法)2种设计模式,阐述了基于“.Net”的数据库访问接口的从r分析、设计到实现的开发过程.通
过该接口的使用,实现了数据库访问代码的复用,将大大提高应用系统在不同类型数据库间的可
移植性,
关键词:设计模式;面向对象;ADO.Net;数据库访问
文献标识码:A
卸
中图分类号:TP393 文章编号:1671—0924(20a7)o6—0093—05
q 。 、琊
Design of Database Access Interface Based on Design Patterns
TANG Xin ,GUO Yong-qiangb
(a.Modem Education Technology Center;b.Teaching Affairs Ofifce,
.
Chongqig nInstitute ofTcclmology,Chongqing400050,China)
Abstract:Through the analysis of the mechanism of access database by ADO.Net nd ahe tcombination wih t
Abstract Factory,Factory Method,two kinds of Design Patterns,this paper expatiates on the development
process of analysis.design and realization ofthe Database Access Interface based on.Net.With this inter—
face.the refactoring ofthe code ofdatabase access is realized,which will gready raise the portability ofthe
application system in diferent kinds of databases.
Key words:design patterns;object oriented;ADO.Net;database access
I ADO.Net数据访问机制
在进行程序开发时,我们经常会对各种数据库进行访问,特别像MIS,ERP这种对数据进行采集与处
理的系统,几乎都会将数据存放于数据库中,因而在这样的系统中对数据库的操作是无法避免的[‘一 .当
使用“.Net Framework”进行开发时,都是通过在“.Net”环境中提供的ADO.Net来对关系数据、XML和应用
程序数据进行访问[ -4],图l为ADO.Net结构图.
-
收稿日期:2007—02—10
基金项目:重庆市教委科学技术研究项目(030601).
作者简介:唐鑫(1980一),男,重庆人,主要从事数据库管理和软件工程研究.
维普资讯
维普资讯
唐鑫,等:基于设计模式的“.Net”数据库访问接口设计
System Data.Idb Connection
System Data.Sql Client Sql Connection
System Data.Orade Client Oracle Connection System Data.Odbc.Ocbo Connection
图3 Connection对象结构
System Data.Idb Command
System.Data.Sql Client Sql Command System.Data.Oracle Client Orade Command
System Data.OleDb.OleDb Command System.Data.Odbc.Ocbo Command
图4 Command对象结构
System.Data.Idata Reader
System.Data.Sql Client Sql Data Reader System.Data.Oracle Client Orade Command
System.Data.OleDb.OleDb Data Reader System.Data.Odbc.Ocbo Data Reader
System.Data.IDataAdapter
System.Data.Sql Client Sql DataAdapter System.Data.Oracle Client Orade DataA dapter
System.Data.OleDb.OleDb DataAdapter System.Data.Odbc.Odbc Data Adapter
95
维普资讯
重庆工学院学报
5)简化后的结构.不难看出,可以使用Abstract Factory(抽象工厂)模式来实现数据库访问接口对不同
类型数据库的访问.在这里数据库访问接口既是Abstract Factory(抽象工厂),又是Client(对象的使用者),
因此可以简化一下设计,得到如图7的结构.
C
c
re
。
ate
。
D
。
ata
c
A
。“
dapte
。
C
r e
a t e
DB C
om m a n
0
d
l
()
CreateDataReader(
1l ::L.….... .,
_J
[!s rt
蛊盘
l :D — ¨—t C—
~
l i 0n—
一lt ininjI — I 1Ln=~=,I= n=一 ,’=I …=一==: I.・.÷
Orade Data Aceess
Create DB Correction0
C
c
rea
。
teD
。
a
。
ta
c
RA
。
edadpet
i
er
。
( 1)。fI-1:・ ’’,一 I .… O.一
C er
a te
DBC
o m ma
n
d O
氮
le Db Dam
‰
Connection I l Odbd Data Connection
Create DB Commando
Create Data Reader0
Create Data AdaoteO
SqlDataCommand l I IOradeDataCommandI..
… …一
fOleDbDataCoremand
Ole Db Data Reader]l 里!!! !! ::
..一一.,
e i!: j
-…… ̄P"I Ole Db Data Adaptcr I Odbd Data A(1apterJ.qt‘…
图7基于Abstract Factory的数据库访问接口结构
6)应用.在基于Abstract Factory模式建立数据库访问接口后,我们可以在应用程序中使用IData Ac.
cess对象对数据库进行操作,而不必关心所使用的数据库类型.只需在IData Access对象初始化时,将所用
数据库类型所对应的IData Access的子类对象进行初始化,然后使用IData Access所提供的方法对数据库
进行操作就可以了.
7)优点.通过这样的设计,使得应用程序在开发的时候不必为不同的数据库类型而进行不同的程序
实现,代码实现的效率得到极大的提高.同时,当应用程序在不同的数据库类型之间进行移植的时候,也
可以不必进行代码的修改,使得程序的可移植性增强,而且可对数据库操作进行封装,使得程序在编码时
的误码率降低,便于开发与维护.
2.2 Factory Method(工厂方法)
1)意图.定义一个用于创建对象的接E1,让子类决定实例化哪一个类.Factory Method使一个类的实
例化延迟到其子类.
2)适用性.①当一个类不知道它所必须创建的对象的类的时候;②当一个类希望由它的子类来指
定它所创建的对象的时候;③当类将创建对象的职责委托给多个帮助子类中的某一个,并且希望指定哪
一
个帮助子类为代理者的时候.
3)结构.见图8.
4)应用.由于在程序编写的过程中我们是可以确定当前程序所需要访问的数据库的类型的,因此在
使用Factory Methdo模式时可以参数化工厂方法,使用一个可以标示要创建对象类型的参数,使得该工厂
方法可以创建多种产品.而所创建的对象将共享IData Access接口(见图9).
维普资讯
唐鑫,等:基于设计模式的“.Net”数据库访问接口设计 97
Concrete Crector
Factory Method()l
图8 Factory Method
I…. 1 ’
l L,a a^cce55 l—
l
I
L D ata Acces¥Creator
Created D ata Access(in type Data Base Type)
-一
--J Oracle Da£a Access SQLDDa a Access ‘一一一一‘一一一一‘一一一一’l
l
((枚举))
Data Base Type
+l=Orade
『
…・
I Odbc Data Access 0IeDR Data ACCe ̄S ●一一一一一一一一一一一一一一。
+2=SQL Server
+3=ODBC
+4=OleDB
图9基于Factory Methd的数据库访问接口结构 o
5)优点.在基于Factory Method模式对数据库访问接口进行实现后,可以在接口中不必暴露IData Ac—
ces的子类信息,[Data Access的对象创建被封装到Create Data Access方法中,用户所需操作的数据库类型
通过DataBaseType类型的参数来确定,这样的封装使得IData Access对象的生成对用户透明,接口的实现
对用户透明.
通过这样的设计,使得我们在对不同的数据库类型进行程序实现时,可以通过参数来进行,编码人员
不必了解接口的复杂操作,接口的使用简单、方便.同时,应用程序在不同的数据库类型之间进行移植时,
只需修改数据库类型参数就可以实现.如果将数据库类型记录到应用程序配置参数中,则在数据库类型
发生改变时只需对配置参数进行修改即可,程序的可移植性得到很好的实现.
3结束语
本文中讨论了在“.Net”平台下使用ADO.Net访问数据库时所面临的问题,并通过实例描述了如何应
用设计模式思想解决这些问题.通过数据库访问接口的实现,使得数据库访问代码可被复用,降低了开发
的复杂度,增强了系统的健壮性以及可维护性,并使应用系统在不同数据库间移植成为可能.可以看出,
软件设计模式代表了从成功的系统设计中分离出来的可重用的优秀设计经验,为项目之间、开发人员之
间重用面向对象代码提供了一种方便的途径,使得软件系统的设计、开发、维护、移植更加容易.
参考文献:
[1] 李敏,湛成伟.面向对象数据模型技术在旅游信息管理中的应用研究[J].重庆工学院学报.2006,20(5):ll5一ll8
[2]赖莉.数据存储方案分析[J].渝西学院学报:自然科学版,2005.20(5):ll5一ll8.
[3]成卫,苟光磊,闫河.重钢运输部信息系统数据安全方案设计[J].重庆工学院学报,2004(4):43—47.
[4]胡芳华,张继棠.基于.NET的数据层设计[J].重庆工商大学学报:自然科学版,2oo5(3):281—284.
(责任编辑刘舸)
版权声明:本文标题:基于设计模式的“.Net”数据库访问接口设计 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1711607144a602054.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论