免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1093 | 回复: 0
打印 上一主题 下一主题

对象持久化的几种模式 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-19 11:05 |只看该作者 |倒序浏览
一、对象-关系映射(ORM)
    ORM-Object/Relational Mapper,即对象-关系型数据映射组件。对于O/R,即 Object(对象)和 Relational(关系型数据),表示必须同时使用面向对象和关系型数据进行开发。ORM解决的主要问题就是对象-关系的映射。一般情况下,一个持久化类和一个表对应,类的每个实例与表中的一条记录对应。
二、主动域对象模式
    在它的实现中封装了关系数据模型和数据访问细节。在 J2EE 架构中,EJB 组件分为会话 EJB 和实体 EJB。会话 EJB
通常实现业务逻辑,而实体 EJB 表示业务实体。实体 EJB 又分为两种:由 EJB 本身管理持久化,即 BMP(Bean-Managed
Persistence);有 EJB 容器管理持久化,即 CMP(Container-Managed Persistence)。BMP就是主动域对象模式的一个例子,BMP 表示由实体 EJB 自身管理数据访问细节。
主动域对象本身位于业务逻辑层,因此采用主动域对象模式时,整个应用仍然是三层应用结构,并没有从业务逻辑层分离出独立的持久化层。
优点:
   1、在实体域对象中封装自身的数据访问细节,过程域对象完全负责业务逻辑,使程序结构更加清晰。
   2、如果关系数据模型发生改变,只需修改主动域对象的代码,不需要修改过程域对象的业务方法。
缺点:
   1、在实体域对象的实现中仍然包含SQL语句。
   2、每个实体域对象都负责自身的数据访问实现。把这一职责分散、在多个对象中,这会导致实体域对象重复实现一些共同的数据访问操作,造成重复编码。
三、JDO 模式
   Java Data Objects(JDO)是 SUN 公司制定的描述对象持久化语义的标准API。严格的说,JDO
并不是对象-关系映射接口,因为它支持把对象持久化到任意一种存储系统中,包括 关系数据库、面向对象的数据库、基于 XML
的数据库,以及其他专有存储系统。由于关系数据库是目前最流行的存储系统,许多 JDO 的实现都包含了对象-关系映射服务。
四、CMP 模式
   在 J2EE 架构中,CMP(Container-Managed Persistence)表示由 EJB
容器来管理实体 EJB 的持久化,EJB 容器封装了对象-关系的映射及数据访问细节。CMP 和 ORM
的相似之处在于,两者都提供对象-关系映射服务,都把对象持久化的任务从业务逻辑中分离出来。区别在于 CMP 负责持久化实体 EJB 组件,而
ORM 负责持久化 POJO,它是普通的基于 Java Bean 形式的实体域对象。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/82195/showart_1423537.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP