一、对象-关系映射(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 形式的实体域对象。
分享到:
相关推荐
Java 对象持久化技术研究 Java 对象持久化技术是指将Java对象转换为可存储的格式,并将其存储在数据库或文件系统中,以便在需要时可以重新构建对象。这项技术的优点包括:可以提高应用程序访问数据的速度,实现控制...
在数据库管理系统中,对象持久化是指将程序中的对象状态转化为可以长期存储的形式,以便在后续的运行时能够恢复这些状态。 Hibernate是一种流行的对象关系映射(ORM)框架,它简化了Java应用与数据库之间的交互,...
数据访问代码负责把实体域对象持久化到关系数据库中。 2.1 直接通过JDBC API来持久化实体域对象 21 .2.2 ORM简介 27 2.2.1 对象-关系映射的概念29 2.2.2 ORM中间件的基本使用方法 31 2.2.3 常用的ORM中间件 33 ...
数据访问代码负责把实体域对象持久化到关系数据库中。 2.1 直接通过JDBC API来持久化实体域对象 21 .2.2 ORM简介 27 2.2.1 对象-关系映射的概念29 2.2.2 ORM中间件的基本使用方法 31 2.2.3 常用的ORM中间件 33 ...
其次,持久化(Persistence)则更多地被视为一个动词,表示将对象的状态转化为可持久的形式,以便于长期存储。在Java中,尤其是通过ORM(对象关系映射)工具如Hibernate进行持久化操作时,它将对象与数据库之间的...
本文将深入探讨C#中除了数据库之外的几种对象持久化方法。 首先,我们来了解一下什么是序列化和反序列化。序列化是将对象转换为可以存储或传输的格式,例如XML、JSON或二进制流。反序列化则是将这些格式的数据还原...
根据实体对象与实体管理器(EntityManager)之间的交互关系,实体对象可以处于以下几种状态: 1. **瞬时状态(Transient State)** 当一个实体对象刚刚被创建出来但还未被实体管理器管理时,它处于瞬时状态。此时...
1. **对象持久化**:这是将内存中的对象状态转化为可存储的形式,通常是数据库记录。当需要时,可以反向加载这些数据以恢复对象的状态。 2. **对象关系映射(ORM)**:ORM工具自动处理了对象与数据库之间的转换,让...
在 HarmonyOS 中,数据持久化的方式主要包括以下几种: 1. **文件存储**:适用于存储非结构化的数据,如文本、图片和音频文件。文件存储可以通过系统的文件API进行操作,方便地读写文件。 2. **关系型数据库**:如...
在Java开发领域中,对象池技术是一种常用的设计模式,用于管理可重用的对象集合,从而提高系统性能并减少资源消耗。本文将详细探讨Java对象池技术的基本原理及其具体实现方式。 #### 基本概念 在开始之前,我们先...
本文将深入探讨五种常见的Java对象类型:持久化对象(Persistent Object,简称PO)、值对象(Value Object,简称VO)、数据访问对象(Data Access Object,简称DAO)、业务对象(Business Object,简称BO)和平凡的...
`pickle`模块可以处理以下几种数据类型: 1. **基本数据类型**:包括布尔值、整数、浮点数、复数、字符串、字节以及None。 2. **复合数据类型**:由基本数据类型组成的列表、元组、字典和集合。 #### 四、pickle...
shelve模块是另一种数据库风格的文件接口,它将Python字典对象持久化到文件中。shelve模块对数据的操作与操作字典类似,但它会将数据持久化保存,即使程序停止运行后数据也不会丢失。 示例代码如下: ```python ...
Java面向对象程序设计中,DAO(Data Access Object)模式是一种常用的设计思想,目的是将数据库操作封装起来,实现对持久化数据的访问。在农业信息系统开发中,DAO模式的应用可以提高系统的灵活性、可维护性和可...
`CArchive`有两种模式:存档(store)模式用于写入数据,提取(load)模式用于读取数据。你可以使用`CArchive`的构造函数指定文件或内存缓冲区,并设置其操作模式。 6. **示例代码** 以下是一个简单的串行化类`...
2. 对象持久化:将内存中的对象状态保存到数据库中,以便在后续的会话中恢复。这个过程可以通过ORM(Object-Relational Mapping)框架来简化,如Python的SQLAlchemy或Java的Hibernate。 3. 查询语言:虽然对象数据库...
对象的序列化与反序列化是计算机编程中的关键概念,特别是在数据存储、网络传输和状态持久化等场景中。这两个过程对于理解数据处理流程至关重要。 序列化是指将一个对象的状态转换为可存储或可传输的形式,通常是...
Java对象的序列化和反序列化是Java编程中一项重要的技术,主要应用于数据持久化、网络传输等场景。本教程将详细讲解这一概念及其在实际应用中的操作。 首先,序列化是将Java对象转化为字节序列的过程,目的是为了...
在实现Vuex持久化时,我们需要考虑以下几点: 1. 持久化存储方式的选择 在本例中,持久化工具将状态存储到本地存储中。选择localStorage或sessionStorage取决于应用的特定需求,比如是否需要在页面刷新后保留数据。...