SSH框架之Hibernate的对象状态、一级缓存

一、Hibernate的对象状态
1、Hibernate中对象的状态: 临时/瞬时状态、持久化状态、游离状态。

1)临时状态特点:
a)直接new出来的对象。
b)不处于session的管理
c)数据库中没有对象的记录。

2)持久化状态特点:
a)当调用session的save/saveOrUpdate/get/load/list等方法的时候,对象就是持久化状态。
b)处于持久化状态的对象,当对对象属性进行更改的时候,会反映到数据库中!
特点总结:处于session的管理;数据库中有对应的记录。

3)游离状态特点:
a)不处于session的管理;
b)数据库中有对应的记录
c)Session关闭后,对象的状态;

2、注意:对象状态的转换!
1)临时状态:

2)持久化状态:

3)游离状态:

二、一级缓存
1、为什么要用缓存?
目的:减少对数据库的访问次数!从而提升hibernate的执行效率!

2、Hibernate中缓存分类:
1)一级缓存
2)二级缓存

3、概念
1)Hibenate中一级缓存,也叫做session的缓存,它可以在session范围内减少数据库的访问次数! 只在session范围有效! Session关闭,一级缓存失效!
2)当调用session的save/saveOrUpdate/get/load/list/iterator方法的时候,都会把对象放入session的缓存中。

3)Session的缓存由hibernate维护, 用户不能操作缓存内容; 如果想操作缓存内容,必须通过hibernate提供的evit/clear方法操作。

4、特点:
1)只在(当前)session范围有效,作用时间短,效果不是特别明显!
2)适合在短时间内多次操作数据库,效果比较明显!

5、缓存相关几个方法的作用
1)session.flush(); 让一级缓存与数据库同步
a)不适用flush():

b)使用flush()

2)session.evict(arg0); 清空一级缓存中指定的对象
3)session.clear(); 清空一级缓存中缓存的所有对象

4)在什么情况用上面方法?
批量操作使用使用:
Session.flush(); 先与数据库同步
Session.clear(); 再清空一级缓存内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值