论文部分内容阅读
目前,大多数商业系统通常都采用面向对象的应用与关系数据库相结合的方式,这会引出对象模型和关系模型之间的不匹配问题。对象模型基于耦合、内聚和封装等软件工程概念,而关系模型则基于数学理论,特别是集合论。在应用上使用面向对象模型、在数据存储上使用关系模型就存在这样的问题:对象模型通过对象之间的关系遍历对象,而关系模型则是复制数据来连接表中的行。另一方面,面向对象模型的理想存储机制——面向对象数据库还不成熟,还存在一定问题和局限性,这也成为在开发中选择关系数据库的一个重要原因。因此,研究如何在应用开发过程中进行对象-关系转换、有效地集成面向对象应用和关系数据库显得格外重要。
实现这种对象-关系转换的核心的问题是对象持久化,即把对象由内存中的瞬态对象变成数据库中的持久对象。目前通过直接内嵌SQL或者数据访问类的方法可以解决两种模型不匹配的问题,但却使得应用的可维护性降低,数据库发生变动就涉及到大量修改应用中的数据访问代码。一个更好的解决方案是构建一个数据访问层,用户接口、业务逻辑和数据库访问各为一层,各层通过接口与相邻层通信,每个层中的代码改变不会对其他层造成太大的影响。
本文分析了对象模型与关系模型的各自特点以及对象-关系映射理论,详细描述了不同映射策略的适用性并进行了比较。探讨了基于关系数据库的对象持久化方法,分析了数据访问层的数据访问模式、事务模式和Cache模式的特征以及各种模式的适用点,结合这些设计模式提出了具有性能优化策略的轻量级的对象持久层框架,并对框架的设计细节进行了描述和说明。
这一对象持久层框架能够封装关系数据库的访问、实现对象的透明存储,同时还具有缓存和延迟加载等性能优化的能力,对面向对象应用而言是一种轻量级又高效的数据库中间件。由于对象持久层将关系数据库访问的实现代码从业务应用代码中解耦出来,应用的维护性大大提高;同时,对象持久层支持多数据库产品和数据源,使应用具有很好的移植性。可以说这是一种解决基于关系数据库的对象持久化的理想方式。
为了将对象持久层应用于B/S开发中,本文结合Struts和轻量级对象持久层框架,应用这一框架,能快速开发web应用,大量减少手工编码,提高开发的质量和效率。