Hibernate的缓存机制

hibernate中的对象状态

首先需要明确hibernate中的对象状态,Hibernate的缓存机制与对象状态密切相关。
Hibernate中对象分为三种状态:
1、瞬时状态:对象没有id,没有在session缓存中
2、游离|托管状态:对象有id,但没有在session缓存中
3、持久化状态:对象有id,并且在session缓存中

三种状态的转换图:
结论:将我们希望同步到数据库中的对象转换成持久化状态。
在这里插入图片描述

Hibernate一级缓存

Hibernate的一级缓存属于session级缓存,所以生命周期与Session相同。
在Hibernate中不同Session不能共享一级缓存,即一个Session不能访问其他Session在一级缓存中的对象实例。
缓存:提高效率.hibernate中的一级缓存也是为了提高操作数据库的效率.
提高效率手段1:提高查询效率
在这里插入图片描述
提高效率手段2:减少不必要的修改语句发送
在这里插入图片描述

Hibernate二级缓存

Hibernate的二级缓存由从属于一个SessionFactory的所有Session所共享。当程序使用Session加载持久化对象时,Session首先会根据加载的数据类和唯一性标识在一级缓存中查找是否存在对象的缓存实例,如果存在,则作为结果返回,不存在,继续在二级缓存中查找,如果存在,则作为结果返回,不存在,访问数据库。
Hibernate本身未提供二级缓存的实现,需要引入第三方插件实现二级缓存策略。

第三方插件如 EHCache,配置略。

二级缓存常用于数据数据更新频率低且系统频繁访问的非关键数据,以防止用户频繁访问数据库而过度消耗资源。

在此处添加。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值