对象持久化

1 篇文章 0 订阅
1 篇文章 0 订阅

对象持久化

  何谓“持久化” 持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。除了 ORM 技术,还有以下几种持久化技术主动域对象模式、JDO 模式、CMP 模式。

一、对象-关系映射(ORM)

        何谓“对象数据映射(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 形式的实体域对象。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值