基于基于Hibernate框架的数据持久层架构设计及应用框架的数据持久层架构设计及应用
数据持久层在Web应用系统开发中,主要应用于业务逻辑和数据逻辑的松散耦合,提高软件可重用性。分析了
Hibernate框架及DAO设计模式的工作原理,设计了基于Hibernate框架采用DAO设计模式的数据持久层架构体
系,并通过具体Web应用,阐述了数据持久层架构的具体实现过程。
摘摘 要:要: 数据持久层在Web应用系统开发中,主要应用于业务逻辑和数据逻辑的松散耦合,提高
关键词:关键词:
在Web应用系统中,Web服务器作为连接客户端和数据库服务器的一个中间层,既要对客户端提出的请求进行业务分析和
处理,又要访问数据库并与数据库进行交互。当业务逻辑代码中包含数据访问代码时,将给系统的修改和维护带来很大困难,
同时也不利于以后在开发类似系统中进行大粒度的软件重用。因此有必要把功能层划分为业务逻辑层和持久层。业务逻辑层专
注于业务逻辑的分析和处理,持久层专注于与数据库交互进行数据的持久化工作,并提供一个标准的接口供业务逻辑层调用。
通过这样一个层次的划分,实现了高效、清晰的专业分工和职责划分,既实现了功能层中业务逻辑和数据逻辑之间的松耦合关
系,又利于系统的修改、维护和软件重用[1]。
目前的J2EE应用系统开发中已经存在不少框架。在系统架构分析时,如何应用已有框架为应用系统量身定做一个合适的架
构,对J2EE设计开发者提出了挑战。本文基于Hibernate框架采用DAO设计模式,设计了数据持久层架构。并将其应用于问卷
调查系统,实现了业务逻辑和数据逻辑的松散耦合,提高了系统的开发效率和软件重用性。
1 Hibernate技术技术
1.1 Hibernate框架框架
Hibernate是采用ORM映射机制进行持久层数据开发的工具,它是Java应用程序和关系数据库中间的桥梁,负责对Java对象
和关系型数据之间映射[2]。其架构体系如图1所示。
Hibernate内部封装JDBC进行访问数据库操作,其向上层应用对象提供面向对象的数据库访问API,使开发者能充分运用面
向对象的编程思维操作数据库,而无需关心底层数据库操作。Hibernate自身通过hibernate.cfg.xml和类的映射文件将类和数据
库相映射,应用程序通过Hibernate及持久化对象类直接访问底层数据库。
1.2 Hibernate核心接口核心接口
利用Hibernate进行数据持久化操作,至少会用到下列核心接口:Configuration接口负责配置启动Hibernate并创建
SessionFactory对象;SessionFactory接口产生Session实例的工厂类,负责初始化Hibernate并创建Session对象;Session接
口是Hibernate进行持久化操作的基础,相当于JDBC中的Connection对象所起的作用。Session提供了一系列的持久化操作方
法,如保存、更新、删除、查询等;Transaction接口负责管理事务;Query和 Criteria接口负责执行数据库查询[3]。
2 DAO设计模式设计模式
DAO(Data Access Object)模式称为数据访问对象模式,是Java EE核心模式之一,其主要的功能是在业务核心方法和具体
数据源之间再增加一层DAO接口及其实现类。该模式的本质是向外部提供一个访问数据源的统一接口,对外隐藏操作数据源
的实现细节,以此实现业务逻辑层与DB的解耦[4]。这是因为在实际的应用过程中,应用程序所面对的数据源往往是多种多样
的,不同数据源的连接方式、数据访问方式会有明显差异,导致了需要访问数据源的组件的代码实现方式与数据源的类型有着
密切的关系,组件和数据源之间的这种紧耦合关系也就导致了整个应用系统难以在不同数据源之间进行迁移。使用了DAO模
式后,即使系统需要进行数据源的迁移,也只需在DAO模式内部进行数据源访问代码的修改,而不会涉及上层调用代码,从
而提高了软件可维护性。
3 数据持久层架构设计及实现数据持久层架构设计及实现
3.1 数据持久层框架设计数据持久层框架设计
在应用程序和数据库之间构建数据持久层,可降低J2EE应用与数据库的耦合度,并简化程序开发。基于Hibernate框架采用
DAO模式设计的数据持久层整体架构如图2所示。