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的实体域对象。

Hibernate学习之对象持久化的更多相关文章

  1. hibernate学习笔记之三 持久化的三种状态

    Hibernate持久化对象有3中状态,瞬时对象(transientObjects),持久化对象(persistentObjects),离线对象(detachedObjects) 下图显示持久化三种状 ...

  2. 《精通Hibernate:Java对象持久化技术详解》目录

    图书信息:孙卫琴 电子工业出版社 第1章 Java应用分层架构及软件模型: 1.1 应用程序的分层体系结构 1.1.1 区分物理层和逻辑层 1.1.2 软件层的特征 1.1.3 软件分层的优点 1.1 ...

  3. Hibernate学习1--对象持久化的思想

    前些天开始接触hibernate,想想以前直接用c3p0进行笨拙而繁杂的数据库操作就觉得生无可恋了,也正因如此,在刚刚接触hibernate的我,便强烈地喜欢上这种偷懒而优雅的面向对象式操作数据库的方 ...

  4. Hibernate学习2--对象的三种状态以及映射关系的简单配置

    上篇hibernate的博客总体简单梳理了对象持久化的一些思想以及hibernate中对象持久化化的方法,下面说说对象持久化过程的三种状态. 一.hibernate缓存的概念 1.session与缓存 ...

  5. hibernate学习之持久化对象

    Hibernate对其持久化对象实现了缓存管理,来提高系统性能,Hibernate支持两级缓存管理,一级缓存 是由Session提供的,因此它只存在于Session的生命周期中,是Session所内置 ...

  6. [原创]java WEB学习笔记94:Hibernate学习之路---session 的管理,Session 对象的生命周期与本地线程绑定

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  7. Hibernate学习笔记(二)—— 实体规则&对象的状态&一级缓存

    一.持久化类 1.1 什么是持久化类? Hibernate是持久层的ORM映射框架,专注于数据的持久化工作.所谓的持久化,就是将内存中的数据永久存储到关系型数据库中.那么知道了什么是持久化,什么又是持 ...

  8. 怎么搭建Hibernate对象持久化框架?

    DBC:(Java Data Base Connectivity)java数据库连接 java.sql包提供JDBC API,可通过它编写访问数据库的程序代码.其中常用的接口和类包括下面内容: Dri ...

  9. (转) Hibernate框架基础——操纵持久化对象的方法(Session中)

    http://blog.csdn.net/yerenyuan_pku/article/details/52761021 上一篇文章中我们学习了Hibernate中java对象的状态以及对象的状态之间如 ...

随机推荐

  1. localStorage.ie6.js

    !window.localStorage && function() { window.localStorage = {}; var prefix = 'data-userdata' ...

  2. XPATH 注入的介绍与代码防御

    0x01 介绍 软件未正确对 XML 中使用的特殊元素进行无害化处理,导致攻击者能够在终端系统处理 XML 的语法.内容或命令之前对其进行修改.在 XML 中,特殊元素可能包括保留字或字符,例如“&l ...

  3. Axure RP的版本控制

    首先介绍一下Axure RP,Axure的发音是Ask-Sure,RP是Rapid Prototype的缩写,写到这里你知道了这是一款原型绘画工具.本节主要介绍Axure RP的版本管理也即Axure ...

  4. iOS版 hello,world版本2

    // // main.m // Hello // // Created by lishujun on 14-8-28. // Copyright (c) 2014年 lishujun. All rig ...

  5. 常用machine learning数据集

    ImageNet:非商业化的可视化大数据 截止到2015年5月1日,ImageNet数据库拥有超过1500万的图像. cifar10:10类物体识别数据集 数据集中包含60,000幅32*32图像,共 ...

  6. Contest20140705 testB DP

    testB 输入文件: testB.in 输出文件testB.out 时限2000ms 问题描述: 方师傅有两个由数字组成的串 a1,a2,⋯,an 和 b1,b2,⋯,bm.有一天,方师傅感到十分无 ...

  7. 【Java】java数据库连接池配置的几种方法

    今天遇到了关于数据源连接池配置的问题,发现有很多种方式可以配置,现总结如下,希望对大家有所帮助:(已Mysql数据库为例) 一,Tomcat配置数据源: 方式一:在WebRoot下面建文件夹META- ...

  8. 使用Python实现Hadoop MapReduce程序

    转自:使用Python实现Hadoop MapReduce程序 英文原文:Writing an Hadoop MapReduce Program in Python 根据上面两篇文章,下面是我在自己的 ...

  9. 读懂Java中的Socket编程

    Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...

  10. 7.微软AJAX的解决方案

    Asp.net中内置的简化AJAX开发的控件UpdatePanel非常方便,但是它会带了许多viewstate,所以高手们并不喜欢它.但它开发在内网应用时可以考滤 放入ScriptManager,将要 ...