持久层概述

  

分层结构是软件设计中一种重要的思想。持久层就是在软件的三层体系结构的基础上发展起来的,它以解决对象和关系这两大领域之间存在的问题为目标,为对象-关系数据库之间提供了一个成功的映射解决方案。

     1.持久化对象

     我们已经知道,程序运行期间的数据都是保存在内存中的。由于内存是易失性存储器,其中的数据掉电后就会丢失,但一些重要的数据需要长久保存以供使用,显然,仅依靠内存无法实现数据的长期保存。为解决该问题,在计算机领域引入了持久化概念。

     持久化(Persisent)指的是将内存中的数据保存到磁盘等存储设备中。

     持久化对象是指已经存储到数据库或磁盘中的业务对象。

     在java中对对象持久化的方式有3种:

          . 序列化对象,将对象存放到格式化的文本文件中。

          .将对象持久化到XML文档中。

    .将对象持久化到数据库中,一般为关系数据库。

  关系数据库中遵循的一条重要原则就是“数据库独立性”,即数据库可以独立于应用程序而存在。由此可知,数据可以比任何应用都存在得更持久。同时,不同应用也可以共享数据库中的数据。

  2.分层体系结构和持久层

  随着计算机应用软件的不断发展,应用程序从最初的单层结构逐渐演变为双层结构。分层也成为了软件设计中的一种重要思想。双层结构分为应用层和数据库层,在双层结构中,用户界面和业务逻辑都由应用层负责实现,数据库层只负责存放持久化的数据。这样,同一个程序文件中用户界面代码和业务逻辑代码会出现混合,显然会产生程序结构不清晰、维护困难等问题,而且不熟悉编程语言的美工人员也无法参与到软件开发过程中来。这些问题促使了应用层的再次划分,将用户界面的设计从业务逻辑层中独立出来,形成单独的一层----表示层。经过再次划分后的软件结构就从双层结构变成了经典的三层结构。

     经典的软件应用体系结构有三层、表示层、业务逻辑层、和数据库层。

  .表示层:提供了与用户交互的接口。实现用户操作界面,展示用户需要的数据。

  .业务逻辑层:完成业务流程,处理表示层提交的数据请求,并将要保存的数据提交给数据库。

  .数据库层:存储需要持久化的业务数据。数据库独立于应用,它提供了系统状态的一种持久化表现形式。

  在上面的3层软件体系结构中,业务逻辑层除了负责业务逻辑以外,还要负责相关的数据库操作,即对业务数据的增、删、改、查。为了使业务逻辑层的开发人员能真正专注与业务逻辑开发,不纠缠于底层的实现细节,可以把数据库访问从业务逻辑中分离开来,形成一个新的、单独的持久化层。增加了持久化层以后,3层的软件体系结构就变成了4层。

    持久化层对数据访问逻辑进行了抽象,业务层通过持久化层提供的数据访问接口来访问底层数据库中的数据。这不仅将应用开发人员从底层操作中解放出来,而且业务逻辑也更加清晰,同时,由于业务逻辑与数据库访问分离开来,使得开发人员的分工可以更加细化。

要注意的是,持久层中“层”的含义。对于大多数应用系统而言,数据的持久化都是必不可少的功能。而持久层意味着,在整个系统架构中,需要有一个相对独立的逻辑层面,这个层面专门负责数据持久化逻辑的实现。相对于系统其它部分而言,这个层面应该具有较为清晰和严格的逻辑边界。

  3.持久层的实现

  持久层的实现是和数据库紧密系相连的。在java领域内,访问数据库的通常做法是使用JDBC.JDBC使用灵活而且访问速度较快,但JDBC不仅需要操作对象,还需要操作关系,并不是完全的面向对象编程。

  近年来出现了许多的持久层框架,这些框架为持久层的实现提供了更多的选择。目前主流的持久层框架包括:Hibernate、iBatis,JDO等。这些框架都对JDBC进行了封装,使得业务逻辑开发人员不再面对关系型操作,简化了持久层的开发。

  4.对象关系映射ORM

  面向对象的开发方法是现今企业级应用开发中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据库管理系统。在软件开发过程中,对象和关系数据是业务实体的两种不同的表现形式,业务实体在内存中的存在形式为对象,要想将业务实体永久存储则只能将其放入关系数据库,在关系数据库中它以关系数据的形式存在。由面向对象基本理论知道,内存中的对象之间是存在着关联和继承关系的,而在关系数据库中,数据库之间是无法直接表达多对多关联和继承关系的。

  为了将面向对象与关系数据库之间的差别屏蔽掉,使得开发人员可以面向对象的思想来操作关系数据库,对象--关系映射组件就应运而生了。

  对象-关系映射(Obejct/Relation Mapping,简称ORM)实现了Java应用中的对象到关系数据库中表的自动化持久化,并使用元数据来描述对象和数据库之间的映射关系。元数据通常采用XML格式。

  本质上,ORM完成的是将数据从一种表现形式转换为另一种表象形式。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库的映射关系。Hibernate 就是实现了ORM的框架。

 

posted on 2017-05-18 11:00  cxdao  阅读(3876)  评论(0编辑  收藏  举报

导航