第22卷第3期2009年9月
宁波大学学报(理工版)JOURNALOFNINGBOUNIVERSITY(NSEE)
Vol.22No.3Sept.2009
文章编号:1001-5132(2009)03-0364-06
基于J2EE的数据持久模型的
设计与实现
孙霞,胡旭昶,姚畅,霍瑞
(宁波大学科学技术,浙江宁波315211)
摘要:针对面向对象技术和关系数据库企业应用开发的通用环境,对数据的持久解决
方案并实现数据持久模型进行了研究.基于对象-关系映射技术,使用代理模式进行持久化管理,将底层的数据访问进行独立封装,并根据业务请求和映射信息文件动态地生成SQL代码,从而使得对象模型与关系数据库之间具有无关性;同时,通过动态分配机制和缓冲机制大大提高了数据访问的效率.关键词:面向对象;关系数据库;映射;数据持久中图分类号:TP311文献标识码:A
在IT技术飞速发展的今天,面向对象技术已经成为企业
软件开发的主流技术,利用对象模型能够很好地描述和设计复杂的软件
系统.在软件系统中,有些对象是需要永久保存的,而实现对象的存储(数据持久)大多使用的是技术成熟的关系数据库技术.但是由于面向对象和关系数据库在处理方式上的差异,导致了关系对象阻抗的不匹配,使得对象设计者需要花费大量的时间实现对象在关系数据库中的持久.因此,良好的数据持久模型可以使开发者能从繁杂的数据持久化
工作中解放出来,将更大的精力放在业务逻辑的获取以及实现上.
将对象图平面化为字节的线性序列的过程.然而,对于复杂的持久化,对象序列化在很多方面存在缺陷:它必须要立即存取对象的特征,同时在序列化的过程中,需要将对象图从内存具体化到持久存储中,这就涉及到大量的I/O开销;它没有提供一个从序列化对象图中检索获取数据的
查询语句;在更改1个对象的属性时,如果有错误发生,它无法实现“回滚”,因此不适于应用
程序对数据完整性的要求,而且用户不能共享使用数据.这些缺点的存在使得简单的对象序列化不适合大多数持久化存储的要求.1.2JDBC与简单的对象序列化相比,JDBC是种复杂的
1
J2EE中现有数据持久化技术比较
[1]
持久对象的技术,它需要用户手工建立对象-关系型数据的映射,所以开发和维护这样的数据持久层所花费的代价非常庞大.JDBC可以说是
Java环境中访问持久层最原始、最直接的方法,是Java
1.1Java对象序列化对象序列化是最简单的Java持久性策略,是
收稿日期:2008-12-25.宁波大学学报(理工版)网址:http://3xb.nbu.edu.cn第一作者:孙霞(1977-),女,江苏泰兴人,硕士/讲师,主要研究方向:
计算机应用及软件工程.E-mail:3710167@qq.com.cn
第3期
孙
霞,等:基于J2EE的数据持久模型
365
中一切数据库操作的基础.它的优点是运行效率较高,而缺点是实现复杂、编码量大、开发效率低、大项目难以维护.但无论怎样,使用JDBC来直接访问持久数据层仍是当今企业级应用开发中使用最广泛的一种方式.1.3EJB中的实体Bean实体Bean是EnterpriseJavaBean(EJB)中的持久数据组件,它代表了使用持久化数据的业务过程,是处理底层持久性数据的组件模型.由于实体Bean简化了代码,并能够快速应用开发,所以实体Bean的前景十分广阔.如果告诉EJB容器一些关于Bean的信息,则容器管理的持久化能够完成所有的数据访问代码,这就大大地减少了Bean的代码长度.由于在Bean中没有JDBC,从而减少了整个应用的开发时间,这也使得代码更容易读懂或者维护.但是,由于实体Bean本身的实现机制导致了它在性能上的缺陷,造成EntityBean容器管理的代价很高,运行效率差,容器不能及时响应数据访问请求.通过上面的比较分析可知,各种持久化技术都有各自的优缺点.对于企业信息系统中的数据持久的重要
问题,需要选择良好的持久技术来进行数据存储,而数据持久的效率直接影响到应用系统的运行效率.企业级应用系统对运行效率都有严格要求,采用现有的数据访问模型(如JDBC、EntityBean等)开发企业级的应用系统时,对开发效率和数据访问效率无法兼顾.