转载:http://book.51cto.com/art/201009/227402.htm

转载只是给自己留一个笔记,没有什么别的用途,如果有冒犯可联系本人删除即可.


 Java对象的持久化概念

花果山猴子们的信息作为特定应用领域里的业务数据,有两种表现形式:

在内存中表现为 Monkey对象。

在关系数据库中表现为 MONKEYS表中的记录。

当 Java程序在内存中创建了一个 Monkey对象后,它不可能永远存在。最后,它要么从内存中清除,要么被持久化到数据库中。内存无法永久地保存数据,因此必须对 Monkey 对象进行持久化。否则,如果 Monkey 对象没有被持久化,那么用户在应用程序运行时创建的猴子信息将在应用程序结束运行后随之消失。而一旦Monkey 对象被持久化,它就可以在应用程序再次运行时被重新加载到内存,并重新构造出 Monkey对象。图 1-11显示了 Monkey对象的持久化过程。

Id java 持久化 java持久化对象_Monkey

 


Hibernate的英文原意是冬眠,冬眠与持久化之间有什么关系呢?Java对象存在于内存中,Hibernate 能够把 Java 对象永久保存到关系数据库中。形象地理解,可以说Hibernate能够让内存中的Java对象在关系数据库中“冬眠”。

狭义的理解,“持久化”仅仅指把对象永久保存到数据库中;广义的理解,“持久化”包括和数据库相关的各种操作:

保存:把对象永久保存到数据库中。

更新:更新数据库中对象的状态。

删除:从数据库中删除一个对象。

加载:根据特定的 OID(Object  Identifier,对象标识符),把一个对象从数据库加载到内存中。

查询:根据特定的查询条件,把符合查询条件的一个或多个对象从数据库加载到内存中。

确切地说,数据库中存放的是关系数据,而不是对象。但本书常常出现“从数据库中加载对象”、“删除数据库中的对象”,以及“更新数据库中的对象”等说法。这主要是站在 Hibernate 的客户程序端的角度来看待数据库访问操作的。Hibernate封装了数据库访问细节,为客户程序提供了面向对象的持久化语义。客户程序可以假想数据库中存放的就是对象,只需委托 Hibernate 从数据库中加载对象、删除对象,以及更新对象就行了,至于 Hibernate 如何把这些对象映射为数据库中的相应关系数据,这就属于 Hibernate的分内之事了。