石少敏
摘要:面向对象作为当前企业级应用系统开发技术的基本思想,由于对象的存储机制,存在不可避免的缺陷,即程序对象只能存在于内存,业务数据和对象的生存周期状态不能被永久保存。对象持久化技术即是该问题的针对性解决方案。对于企业应用而言,可靠的对象持久化方案,是提高应用系统健壮性和稳定性的保障基础。
该文即从对象持久化技术的架构进行研究分析,明确其包含的技术要点,并与面向对象数据库思想相结合,阐述其在系统应用中的优势,为企业应用开发提供强健的技术基础。
关键词:对象持久化;面向对象;企业应用;Hibemate
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2012)32-7641-03
1对象持久化
对象持久化技术是提供对象持久化服务的中间件技术,其本质思想是把数据或程序同时存储到存储器或数据库中。从整个系统的体系结构中把对象持久化功能分离出来,可以降低系统紧耦合,从而提高系统功能模块的复用程度。
对象持久化是永久存储对象的一种技术。持久化机制包括基于OS的文件存储机制、面向对象数据库以及关系数据库等。
对象持久化的实现,我们必须按照持久化机制所选择的,来确定对象的持久化的方法。各种持久化方法有其各自的优缺点,不同的企业应用应该根据自身的系统机构模式,选取不同的持久化策略。
2面向对象数据库
对如声音、图像、图形、影像等这些数据类型多样、结构复杂的数据进行存储和处理,以及在此基础之上的对数据库的各种检索、查询、修改,传统的数据库都不能很好的支持。为了有效管理这些数据,面向对象数据库系统应运而生。
面向对象数据库系统以面向对象思想的基本特征为基础,支持对象数据模型。同时,作为一个数据库管理系统,也具备数据库管理系统的各项基本功能:
1)永久性,即对数据的永久保存;
2)并发事务控制,即保证多个用户同时操作时,数据能够保持其完整和准确;
3)故障恢复功能,能够将数据库从某一错误或故障状态恢复到正确状态的功能;
4)独立于应用的非过程化查询功能。面向对象数据库当前以支持典型的选择、连接、投影等查询功能的OQL语言为其标准查询语言。
此外,部分面向对象数据库系统还具有新的应用领域所需要的特性,如版本分布式计算、长事务和嵌套事务、模式演化、版本管理等。由此可以看出,在对象模型基础上的面向对象数据库,对对象数据的管理遵循面向对象的基本思想,而其丰富的功能,也逐渐使其成为对象持久化实施的优势技术。
3对象持久化技术Hibernate
3.1Hibernate框架介绍
所有的系统其基本配置功能都基本类似,因此,关键问题是如何提高系统的效率。持久化对象,其本质是通过不断地优化数据库的访问策略,更有效地提高系统应用性能。由于系统数据库负担主要来自对数据库的频繁调用,从而也连带影响系统的执行效率;同时,当数据库的负载失衡严重时,也将直接导致应用系统的瘫痪。因此,对数据库访问策略的优化思路,其基本出发点即减少访问数据库的次数,减少数据库的负载。
Hibernate作为现在最流行的轻量级持久化框架之一,是一个开源的ORM框架,同时它支持所有主流商业数据库和开源数据库,支持多种缓存机制,这些特点就为从框架级别提高系统数据操作效率提供了基础。最重要的,Hibernate对JDBC对象的轻量级封装,这在很大程度上为开发人员直接采用面向对象的方法操作数据库提供了可行性。在Hibernate框架的支持下,开发人员对持久层的开发工作,完全可以直接应用像关联、继承、多态、组合等这些Java中的基础架构功能。开发人员所要做的工作,不过是对新增加的一些配置文件进行准确定义,通过这些配置文件,大大节省了以往开发人员用户手工硬编码JDBC和SQL的时间,也实现了以面向对象的方式操作数据库。
3.2Hibernate框架逻辑简介
Hibernate作为一个开源框架,其为应用系统提供持久化服务的实现机制,可用如图1所示的示例图进行说明:
Hibernate从技术上是使用反射机制和运行时字节码来生成实现持久化的代码。图1清晰描述了其内部逻辑,即通过定义XML文件实现javabean中的对象与数据库中数据表数据项字段表的映射,以此实现对数据库表的操作,从而为应用程序提供持久化服务。
3.3Hibernate框架的优化策略
3.3.1数据库连接池技术
数据库连接池技术,如今已是普遍系统开发所考虑的必备技术。对应用连接池技术的应用,因其应用的普遍性,已可以将其视为应用系统开发的基础技术方案之一。
数据库连接池技术,其核心思想是使程序中所有数据库访问请求能够复用在应用启动时所建立的一定数量的数据库连接,并将这些数据库连接作为对象存储在一个容器对象中。如此,省去程序每次访问数据库时需要建立连接的工作,不但改进了对系统资源的浪费,同时,也可观地节省了程序的性能开销。
3.3.2缓存管理机制
Hibernate框架结构,具备良好的缓存管理机制,以期优化对象持久化的性能。
缓存技术的应用,是提升系统性能的关键技术之一,其基本思想即是通过减少直接读写数据库的次数,来提升数据读写速度。之所以能够如此考虑,是基于缓存技术的数据存储机制。通常数据库以硬盘作为存储介质,而缓存则是以内存作为存储介质,数据来源于数据库中数据的拷贝,而从内存读取数据的速度远比从硬盘读取数据要快,由此,应用程序在读数据的时候便可以直接读取缓存中的数据,从而节省了数据读取所需的硬件开销。也因此,缓存技术成为减少数据库直接访问的基础策略。
3.3.3优化数据库访问代码
Hibernate作为一种系统应用开发框架技术,在优化系统性能方面的方案,也包括了通过使用提供的Query接口中的方法来提高效率。
iterate()方法在条件查询应用中有比较多的使用,而其本质是在3.3.2节所述的缓存管理思想的基础上来实现优化。当程序需要条件查询时,先对缓存进行搜索,查找符合条件ID字段;若缓存中有符合条件的结果,就可以直接返回查询结果集。另外,用iterate()方法代替list()方法,在某些情况下能够减少select语句中的字段,降低了访问数据库时的数据量。
Hibernate从类似如上的一些细节上,一点一点改进框架对系统性能的支持。
3.4Hibernate实现
作为企业应用和关系数据库之间的衔接件,使用Hibernate提供对象持久化服务,具体是通过一个配置文件实现对Hibernate的配置和初始化。配置方式有多种,其中使用Hibernate.properties文件和Hibernate.cfg.xml,两种配置是一样的。
配置文件除完成连接驱动类、用户名、密码、URL等的初始化外,Hibernate.cfg.xml文件还允许定义mappingresource,完成写入持久化类的映射文件(类名.hbm.xml)。
一种完全面向对象的方法就是应用对象持久层的开发方法,在此开发方法中,一方面,要从问题域中抽象出类与对象;另一方面,由于对象持久层实现了持久化对象与存储介质的交互,使用一些成熟的持久层框架技术,可以大幅提高系统开发效率和应用性能。也正是基于此,当前持久层框架技术已被广泛应用于各类企业应用系统开发中。
Hibemate是很灵活和强大的,它自身提供了很多性能优化策略,针对不同的数据库和访问量会有不同的优化策略。
4总结
对象持久化虽然概念简单,但是它的实现可能会很复杂。所以应根据实际情况,考虑是使用较简单的实现方法,还是采用复杂的实现方法使得系统易于维护和移植。应用程序开发者也可以考虑使用第三方产品实现对象持久化,这样做的费用看起来可能比直接开发的费用要高,但是它能确保持久化功能的完整实现。
该文即从对象持久化技术的架构进行探讨,对其各项技术要点进行分析,阐述其在企业应用系统开发中的优势,以期为企业应用开发提供强健的技术基础。
参考文献:
[1]邓牧.Java对象持久化技术与Hibemate[J].计算机与现代化,2008(8).
[2]秦奕青.对象持久化常用方法研究[J].北京机械工业学院学报,2003,18(1).
[3]薛鹏飞,陈国同.基于.NET平台的对象持久化方法研究[J].泰州职业技术学院学报,2007(4).
[4]王新辉,杨海明,叶潇.基于Hibernate对象持久化技术的优化策略分析与具体实现[J].电脑知识与技术,2007(10).