一、对象-关系映射(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 形式的实体域对象。
阅读(2371) | 评论(0) | 转发(0) |