Hibernate(十三)session缓存机制和三种对象状态

本文介绍了Hibernate中Session缓存机制及其一级缓存的工作原理,同时深入探讨了Hibernate中的三种对象状态:临时、持久化及游离状态。通过具体实例说明了如何利用Session的缓存特性来提高数据库操作效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Hibernate(十三)session缓存机制和三种对象状态 

             

   hibernate向我们提供的主要的操纵数据库的接口,Session就是其中的一个,
它提供了基本的增,删,改,查方法.而且具有一个缓存机制,能够按照某个时间点,
按照缓存中的持久化对象属性的变化来更新数据库,着就是Session的缓存清理过程.
   在Hibernate中对象分为三个状态,临时,持久化,游离.
   如果我们希望Java里的一个对象一直存在,就必须有一个变量一直引用着这个对象.
当这个变量没了.对象也就被JVM回收了.
   这篇博客我们就带大家一起来看一下session的缓存机制,也就是hibernate的一级缓存,
还有hibernate三种对象状态的详细情况。 
   当Session的save()方法持久化一个Customer对象时,
Customer对象被加入到Session的缓存中,
以后即使应用程序中的引用变量不再引用Customer对象,
只要Session的缓存还没有被清空,Customer对象仍然处于生命周期中。

 

 

 

 

Hibernate(十三)session缓存机制和三种对象状态 

             

   hibernate向我们提供的主要的操纵数据库的接口,Session就是其中的一个,
它提供了基本的增,删,改,查方法.而且具有一个缓存机制,能够按照某个时间点,
按照缓存中的持久化对象属性的变化来更新数据库,着就是Session的缓存清理过程.
   在Hibernate中对象分为三个状态,临时,持久化,游离.
   如果我们希望Java里的一个对象一直存在,就必须有一个变量一直引用着这个对象.
当这个变量没了.对象也就被JVM回收了.
   这篇博客我们就带大家一起来看一下session的缓存机制,也就是hibernate的一级缓存,
还有hibernate三种对象状态的详细情况。 
   当Session的save()方法持久化一个Customer对象时,
Customer对象被加入到Session的缓存中,
以后即使应用程序中的引用变量不再引用Customer对象,
只要Session的缓存还没有被清空,Customer对象仍然处于生命周期中。

 

 

 

 

tx = session.beginTransaction();   
Customer c1=new Customer(“zhangsan",new HashSet());   
//Customer对象被持久化,并且加入到Session的缓存中   
session.save(c1);   
Long id=c1.getId();   
//c1变量不再引用Customer对象   
c1=null;   
//从Session缓存中读取Customer对象,使c2变量引用Customer对象   
Customer c2=(Customer)session.load(Customer.class,id);   
tx.commit();   
//关闭Session,清空缓存   
session.close();   
//访问Customer对象   
System.out.println(c2.getName());   
// c2变量不再引用Customer对象,此时Customer对象结束生命周期。   
c2=null; 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值