通用数据访问模式的研究.pdfVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通用数据访问模式的研究.pdf

通用数据访问模式的研究1 陈卫,丁志强,徐劲松 昆明理工大学信息工程与自动化学院,云南昆明(650051) 摘 要: 运用面向对象的设计原则,将代理模式与工厂方法模式相结合,提出了一种新的 通用数据访问模式。该模式能够支持多种关系型数据库管理系统和数据驱动程序,通过将 应用层与数据层隔离,大大减少了系统的耦合性,具有广泛的实际应用前景。 关键词: 复用; 设计原则; 代理模式; 工厂方法模式 中图法分类号: TP31 1 文献标识码: A 1.引言 随着计算机的广泛应用,各行各业的企业都加速自身的信息化建设。大多数信息系统 都不可避免地涉及到数据的存储及访问,有效且优质的数据访问代码,对于现实中任何企 业应用程序的性能和适用性来说,都是至为关键的。要改进现有系统,没有哪种方式比优 [1] 化数据访问代码更好了 。 一般大中型企业中都会有一些早期开发的遗留系统,在对不同系统的整合过程中,会 涉及到调用不同数据库的数据。将企业的业务逻辑与数据访问隔离开来就成为了一个关键 的工作,这样当后台数据库发生变更时,不至于引起客户端程序的大量改动,从而保证了 系统的整体的稳定性与数据访问程序的可移植性。据此,本文提出了一个集中控制且支持 多种数据库平台的数据访问模式。 2. 框架的设计 为了编写可复用、可维护性好的代码,人们在实践经验中逐渐探索出了一些有针对性 的设计方案,而这些设计方案经过人们反复利用与修正,最终形成了某个特定场景下一般 [2],即我们现在通常所说的设计模式。本文所研究的就是数据访问这一特 问题的解决方案 定的应用场景下,实现支持多种RDBMS 的通用数据访问的解决方案。在此框架中我们需要 用到两种最常用的设计模式:Proxy模式和Abstract Factory模式。 2.1 应用 Proxy 设计框架 [4] 根据Proxy模式的机制,我们需要建立三组类 :由关系型数据库表映射成的具体处理 业务的数据对象RealTableX ,用来接受来自所有客户端的数据访问请求并将其转发给 RealTableX 的代理对象TableProxy和为保证代理对象具备代理数据对象的功能,即能在任何 时候能“替代”RealTableX对象的统一接口TableSubject 。 上述的 RealTableX 类为具体业务表类,实际操作中会随着业务的变化而增加或者废弃 一些不需要的数据表,为了适应这种需求的灵活性,我们使用统一的接口来替代 RealTableX 对象,让所有客户使用代理只针对一个接口来访问,而让所有其他的数据库表都继承这个 接口,我们将这个统一的接口命名为 DBTable 。这一改变正是应用了面向 1本课题得到云南省自然科学基金资助项目(2005IT17)。 -1- [3] 对象技术中的设计原则:Liskov 原则 。通过上面的设计,我们的数据访问的代理模式如 图 1。这些数据库操作按其使用功能,可分为两类:一类是数据库的连接与释放,我们定 义为connect()和close()方法。另一类是对数据的具体操作,这些操作有:数据的查询、删除、 修改、添加功能 (execSelectSQL()、execDeleteSQL()、execUpdateSQL()、execInsertSQL() ) 以及事务的处理(begineTrans()、commit()、rollback() )等 (如图 1TableSubject所示)。而 在具体的RealTableX 中我们屏蔽了这些操作。 为了能在保证系统不变性的前提下支持异构数据库管理系统,此模式的 TableProxy 类 必须能够实时的被替换,而其具有的功能没有任何的改变,即实际上我们的系统中有多个 Table

文档评论(0)

docindoc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档