怎么理解透明持久化?

问题描述

hibernate支持透明持久化,怎么理解呢?

解决方案

关于“透明持久化”Transparent Persistence“透明持久化”,- 它是实现DAO的一种更好的方式(不要将其和上面谈到的那个并不漂亮的DAO实现搞混了)- 它通常是由框架来实现,而不是由应用本身来关心。它能完全剥离业务的持久化操作,仅仅只需提供一个接口供业务逻辑调用(如Hibernate的 Session,JDO的PersistenceManger——JDO并不是基于O/R映射,而是基于字节码增强来实现透明持久化的,iBATIS的 SqlMap对象等)。它可能还有自己特殊的语意(如Hibernate的HQL,因为它必须自己实现真正的SQL,提供的HQL可以简化这一过程,同时也简化了业务逻辑持久化时的工作量)。- 它可以自动侦测所取出的对象的修改(当然,同时应该有提供缓存),并在事务提交时自动将修改后的状态持久化到数据库。- 它很复杂^-^虽然实现“透明持久化”方案非常复杂,但我们不需要重新发明轮子,多数情况下,Hibernate,iBATIS,JDO实现已经完全可以满足我们的持久化需求。

时间: 2024-11-03 18:13:34

怎么理解透明持久化?的相关文章

第一章 对象持久化与Hibernate

1.1 解耦合1.1.1 应用层解耦合--应用逻辑(service)和数据逻辑(dao)分离1.1.2 资源层解耦合--逻辑结构和物理结构分离 1.2 DAO模式1.2.1 DAO对业务层提供数据抽象层接口数据存储逻辑分离数据访问底层实现的分离资源管理和调度的分离数据抽象 1.3 ORM Object Relactional Mapper 对象--关系型数据映射组件       ORM(Object Relational Mapping)---是一种为了解决面向对象与关系型数据库存在的互不匹配的

Java学习杂谈(十二)--ORM

这是最后一篇Java杂谈了,以ORM框架的谈论收尾,也算是把J2ee的最后一方面给涵盖到了,之所以这么晚才总结出ORM这方面,一是笔者这两周比较忙,另一方面也想善始善终,仔细的先自己好好研究一下ORM框架技术,不想草率的敷衍了事. 其实J2ee的规范指南里面就已经包括了一些对象持久化技术,例如JDO(Java Data Object)就是Java对象持久化的新规范,一个用于存取某种数据仓库中的对象的标准化API,提供了透明的对象存储,对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC

SSH框架总结(框架分析+环境搭建+实例源码下载)(转)

首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序.   集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层(实体层).   Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持.Spring一方面作为一个轻量级的IoC容器,负责查找.定位.创建和管

Hibernate学习大全

第1课 课程内容. 6 第2课Hibernate UML图. 6 第3课 风格. 7 第4课 资源. 7 第5课 环境准备. 7 第6课 第一个示例HibernateHelloWorld 7 第7课 建立Annotation版本的HellWorld 9 第8课 什么是O/RMapping 11 一.     定义:. 11 二.     Hibernate的创始人:. 11 三.     Hibernate做什么:. 12 四.     Hibernate存在的原因:. 12 五.     Hi

Java的Hibernate框架结合MySQL的入门学习教程_java

零.关于HibernateHibernate是冬眠的意思,它是指动物的冬眠,但是本文讨论的Hibernate却与冬眠毫无关系,而是接下来要讨论的SSH2框架中的一员.Hibernate是一个开源的项目,它是一个对象关系模型的框架,并且对JDBC进行了非常轻量级的封装,程序员在开发时可以使用对象编程思维进行开发. 下载地址:http://hibernate.org/orm/downloads/ Note:轻量级和重量级的区别,轻量级的框架包较小,并且使用较简单,而且测试容易,开发效率高:重量级框架

Java的Hibernate框架中的基本映射用法讲解_java

Hibernate进行了分类整合发现其实Hibernate分为三大部分:核心对象.映射.HQL,这三大部分开发过程中最常使用,前几篇讨论了核心对象及对象之间的转换方法,接下来讨论Hibernate的映射使用方法.   Hibernate一个重要的功能就是映射,它能够在对象模型和关系模型之间转换,是面向对象编程思想提倡使用的,使用映射程序开发人员只需要关心对象模型中代码的编写.对象和关系数据库之间的映射通常是由XML文档来定义的.这个映射文档被设计为易读的,并且可以手动修改.这种映射关系我总结为下

.Net——Nhibernate实现CRUD

               最近用到SSH(spring+struct+hibernate),从java里面的hibernate,不自觉联系到.net里面的Nhibernate.         下面来简单聊下Nhibernate.     一,引入Dll                主要有三个:                  基本的就这三个,其他的,比如Castle.Core.dll,Castle.DynamicProxy2.dll,Iesi.Collections.dll,log4n

java-在android中关于onCreate方法新参数问题

问题描述 在android中关于onCreate方法新参数问题 android中onCreate方法新参数(persistableBundle persistentState)是让Activity拥有持久化能力,如何理解这个持久化能力呢? 解决方案 一般我们会搭配两个方法来使用: public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) public void onRestoreI

领域驱动设计(DDD)的实践经验分享之持久化透明

前一篇文章中,我谈到了领域驱动设计中,关于ORM工具该如何使用的问题.谈了很多我心里的想法,大家也对我的观点做了一些回复,或多或少让我深深感觉到面向对象设计和领域驱动设计是两个不同层次的东西.你会面向对象并不代表你就会面向领域设计.后来,我无意中发现了一个网站,http://www.jdon.com,这个网站中所包含的知识在我看来非常深入,而且基本上都包含了现在一些最新的设计思想.我看了几篇文章后渐渐感觉到领域驱动设计并不是我想象中那么简单.其实学技术,学框架并不是太难,只要你肯花时间就一定能慢