数据持久层(二)
在对象-关系数据库之间提供一个成功的企业 级映射解决方案,尽最大可能弥补这两种范例之间的差异。
持久就是对数据的保持,即对程序状态的保持。通常通过数据库实现持久层是把数据库实现这块当作一个独立逻辑拿出来。
说白了,就是数据库程序是在内存中的,为了使程序运行结束后状态得以保存,就要保存到数据库使用ORM(对象关系数据库映射)技术可以避免代码直接操作数据库,增加可移植性,可扩展性,可维护性。
J2EE
的三层结构是指表示层(
Presentation
),业务逻辑层(
Business Logic
)以及基础架构层
(
Infrastructure
),这样的划分非常经典,但是在实际的项目开发法中,开发者通常对三层结构进行
扩展来满足一些项目的具体要求,一个最常用的扩展就是将三层体系扩展为五层体系,即表示层
(Presentation),
控制
/
中介层
(Controller/Mediator)
、领域层
(Domain),
数据持久层
(Data Persistence)
和数据
源层
(Data Source)
。它其实是在三层架构中增加了两个中间层。控制
/
中介层位于表示层和领域层之
间,数据持久层位于领域层和基础架构层之间。由于对象范例和关系范例这两大领域之间存在
“
阻抗
不匹配
”
,所以把数据持久层单独作为
J2EE
体系的一个层提出来的原因就是能够在对象-关系数据
库之间提供一个成功的企业级映射解决方案,尽最大可能弥补这两种范例之间的差异。
持久 英文即 persistence。就是把数据保存到可掉电式存储设备中供以后使用。
目录
1概述编辑
大多数情况下特别是企业级应用,数据持久化往往也就意味着将内存中的数据保存到磁盘上加以固化,而持久化的实现过程则大多通过各种关系数据库来完成。
那么持久层呢?
延续思路,所谓“持久层”,也就是在系统逻辑层面上,专著于实现数据持久化的一个相对独立的领域(Domain)。
持久层是负责向(或者从)一个或者多个数据存储器中存储(或者获取)数据的一组类和组件。这个层必须包括一个业务领域实体的模型(即使只是一个元数据模型)。
不过这里有一个字需要特别强调,也就是所谓的“层”。
对于应用系统而言,数据持久功能大多是必不可少的组成部分。那不就是说,我们的系统中,已经天然的具备了“持久层”概念?
也许是,但也许实际情况并非如此。
之所以要独立出一个“持久层”的概念,而不是“持久模块”,“持久单元”,也就意味着,我们的系统架构中,应该有一个相对独立的逻辑层面,专著于数据持久化逻辑的实现.与系统其他部分相对而言,这个层面应该具有一个较为清晰和严格的逻辑边界。