java的持久化层解析



java的持久化层解析。数据持久化怎么理解?对象数据的生命周期。什么是临时状态、持久化状态和游离状态?通过new语句创建对象,该对象的生命周期就开始了,当没有任何引用变量引用它,该对象就结束生命周期,占用的内存便可以被JVM的垃圾回收器回收从而释放掉占用的内存。对要被持久化的Java对象,在生命周期中,可处于以下三个状态之一:

(1) 临时状态(transient):刚用new语句创建,还没有被持久化,不位于Session的缓存中。处于临时状态的Java对象被称为临时对象。
(2) 持久化状态(persistent):已经被持久化,加入到Session的缓存中。处于持久化状态的Java对象被称为持久化对象。
(3) 游离状态(detached):已经被持久化,但不再处于Session的缓存中。处于游离状态的Java对象被称为游离对象。

狭义的理解: “持久化”指把域对象永久保存到数据库中;广义的理解,“持久化”包括和数据库相关的各种操作。 
●     保存:将域对象永久保存到数据库。 
●     更新:更新数据库中域对象的状态。 
●     删除:从数据库中删除一个域对象。 
●     加载:根据特定的OID,把一个域对象从数据库加载到内存。 
●     查询:根据特定的查询条件,把符合查询条件的一个或多个域对象从数据库加载内在存中。 

持久化技术封装了数据访问细节,为大部分业务逻辑提供面向对象的API。 
● 持久化技术可以减少访问数据库数据次数,增加应用程序执行速度; 
● 持久化技术封装,代码重用性高,能够完成大部分数据库操作; 
● 松散耦合,使持久化不依赖于底层数据库以及上层业务逻辑实现,更换数据库时只需修改配置文件而不用修改代码。