Hibernate学习之对象持久化

1.  对象持久化

对象的持久化就是把内存中对象形式的业务数据,转换成数据库中的关系数据形式的业务数据。广义理解,对象的持久化还包括内存与关系数据库之交换业务数据的各种操作。

2. 对象持久化模式

1. 直接通过JDBC(java database connectivity) API来持久化实体域对象

实体域对象的持久化最终必须通过数据库访问代码来实现。java.sql包中提供了JDBC API,常用的接口和类有以下内容:

DriverManager:  驱动程序挂历器,负责创建数据库连接
Connection:代表数据库连接

Statement:  负责执行SQL语句

PreparedStatement:负责执行SQL语句,具有预定义SQL语句的功能

ResultSet:代表SQL查询语句的查询结果集

     缺点:
1. 实现业务逻辑和数据库访问代码掺杂在一起

2. 程序代码中嵌入面向关系的SQL语句,开发人员不能完全运用面向对象的思维来编写程序

3. 业务逻辑被迫与关系数据模型绑定。如果关系数据模型变化,如表结构发生变动,就需要修改所有的相关SQL语句

2. ORM(object - relation Mapping)中间件模式

 1)  ORM(对象关系映射)模式指在一个组件中负责所有实体域对象的持久化,封装数据访问细节。

 2)  ORM中间件采用元数据描述对象-关系映射细节,元数据通常采用XML格式文件,并且存放在专门的对象 - 关系 映射文件中。

 3)  常用的ORM中间件:hibernate, toplink, torque等。

        3.  实体域其他的持久化模式

 实体域持久化模式除了ORM外,还有以下几种模式:

 1)  主动域对象模式

    该模式是在实体域对象中封装了关系数据模型和数据的访问细节。 

 2) JDO模式

   Java Data Objects 是Sun公司制定的描述对象持久化语义的标准API.,该模式下,整个应用分为四层。


  3) CMP模式

CMP(Container-managed Persistence) 表示由EJB容器来管理实体EJB的持久化,EJB容器封装了对象-关系的映射和数据访问细节。


CMP与ORM的相似点:

a:都提供了对象-关系映射服务

b:都把对象持久化的任务从业务逻辑中分离出来

 区别:

a:CMP负责持久化实体EJB组件,而ORM负责持久化POJO,POJO是普通的基于JavaBean的实体域对象。

原文地址:https://www.cnblogs.com/marcotan/p/4256960.html