据为关注中心的软件产品中,更是起着举足轻重的作用。
无论从理论方面,还是从实践方面,关系型数据库都经历了数十年的考验,体现出无可比拟的成熟性。
然而随着企业规模的扩展,其对软件功能和数据存储的要求不断增加,大大增加了软件的开发难度和复杂度,在代码开发过程中,重复编码和硬编码所带来的问题使软件开发举步维艰。
这样,一种更加接近人类思维方式的面向对象编程思想应运而生,经过几十年的发展,已经成为软件系统开发的主流思想。
由于面向对象技术是面向工程的,是对编码方式和结构的抽象,是建立在“对象”概念基础上的方法学;而关系型数据库技术,则是对数据存储、分析的抽象,是基于数学原理,特别是集合论原理的。
因而面向对象实现和关系型数据库在数据交互过程中不可避免地出现失配,这种向对象模型和关系模型之间的失配叫做阻抗不匹配。
这时,就需要在对象和关系数据库之问建立映射关系来实现两者之间的交互,即对象/关系映射问题。
另外一个方面,伴随着软件规模的增加,软件开发人员为了对软件在逻辑上有一个总体组织和全局控制结构的把握,使软件在开发过程中,更具备扩展性、安全性、稳定性,提出了软件构架的概念来指导大型软件系统各个方面的设计。
软件架构高度抽象的描述了一个软件系统的结构【11,是一个系统的草图,它控制着软件的全局,并主导着开发活动的组织和实施。
一方面从代码结构来讲,其描述的对象是直接构成系统的抽象组件。
各个组件之间的连接和通讯则是明确的和相对细致的。
在实现阶段,这些抽象组件被细化为实际的组件,、比如具体某个类或者对象;在面向对象领域中,组件之间的连接通常用接口来实现。
另一方面从逻辑的抽象角度来看,软件开发人员迫切需要将实现技术和代码表达的逻辑业务区分开来,实现更大的灵活性,减轻代码维护负担。
1.2国内外研究的现状 早在1998年,Scott W.Ambler在其文章中就提出了关于对象关系映射持久层(ORMPersistence Laycr)的详细设计论文【2】。
在文中,他以多年的面向对象编程经验,提出了 对象关系映射在企业开发中的研究与应用Class Type Archimma’e思想,并设计了一个持久层框架.后来:mere R幽y根据这个框架开发了一个开源的ORM实现,将其应用到P附哪i鼬∞∞L矗yef)开潦项目中,譬证了Scott的持久层设计的可行性和先进性,从而使得与ORM相关的研究与安现成为一硬被广泛研究和讨论的技术. MartinFowlcr在文献【3】中,把对象关系映射当作了一个设计模式加以叙述和论证,并对其他相关子模式也进行了详细的阐述。
该书可以算是对近年来的ORM的研究成果和技术作了一个总结.文献14】描述了OILM组件Hiberaate.这是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,实现了对象查询(OQL灏匐向SQL语句的解释转换,提供了真正意义上的对象化查询操作. 文献嘲对ORM的测试工具TORPEDO(The Testbed of Object Relational Products forEnterprise Distributed Objects)进行了介绍,并阐释了其在评价ORM中闻件性能优劣中的重要性,为衡量ORM的性能测试方面的实施给予了指导. 在国内,如文献【6】中,秦奕青通过对内嵌SRL、紧耦合和健壮持久层技术等三种常用持久化方法的研究,对三种方法的优缺点进行了分析.他建议开发者根据自己的情况来考虑选择合适的方法来实现ORM映射框架.在文献【7】中,周娅、黄桂敏认为面向对象的分析设计与关系数据库的实现之间采用ERwin模型作桥梁,实现对象模型与关系模型的转换是一种较好的对象关系集成型数据库设计方法,他们给出了对象模型到ERwin模型的转换方法;在文献IS〕中,介绍了三种基于java平台的主流持久层解决方案.通过对三种数据映射方案的分析和比较,探讨了各种解决方案的技术特点,以及在项目开发过程中的使用特点,并深入分析了数据持久层设