hibernate知识点分析之缓存

本文详细解析了Hibernate的一级缓存和二级缓存机制。一级缓存即Session缓存,是内置、事务级别的缓存;二级缓存是SessionFactory缓存,是可选的进程或集群范围缓存,需要配置并发访问策略。二级缓存适用于不变或少变的数据,并通过EHcache实现,配置包括在hibernate.cfg.xml中开启缓存及在映射文件中添加缓存策略。在应用中,Hibernate会根据ID先从Session缓存查询,再从SessionFactory缓存查询,最后才查询数据库,并在操作数据时同步更新缓存。
摘要由CSDN通过智能技术生成

一、hibernate缓存的作用

为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。

二、hibernate的分类

hibernate缓存有一级缓存和二级缓存之分,一级缓存又成为Session缓存,二级缓存又称为SessionFactory缓存。

1.一级缓存

   Session缓存属于内置的,不可被卸载,由于session对象的生命周期通常对应一个数据库事务或者一个应用事务,因此它的缓存是事务范围。在第一级缓存中,持久化类的每个实例都具有唯一的OID。

2二级缓存

     SessionFactory缓存是可选的插件,默认情况不会启用,由于SessionFactory对象的生命周期和应用的整个

     生命周期对应,因此SessionFactory是进程范围或集群范围的缓存,并有可能出现并发问题,所以需要采用

     适当的并发访问策略,该策略为被缓存的数据提供了事务隔离级别。

2.1  适用场景:很少被修改的数据

                         不是很重要的数据,允许出现偶尔并发的数据

                         不会被并发访问的数据

                         常量数据

                         与其他应用共享的数据不要放在该级别缓存中。

2.2  二级缓存的配置

      由于hibernate没有提供二级缓存的组件,所以需要加入额外的二级缓存包,常用的二级缓存包是EHcache,这个

      可以从hibernate的lib->optional->ehcache中找到,然后将里面的jar包导入即可。

  2.21在hibernate.cfg.xml中加入以下信息:(这里是以5.4.0版本为例)

<!-- 开启二级缓存 -->
<property name="hibernate.cache.use_second_level_cache">true</property>
<!-- 二级缓存的提供类 在hibernate4.0版本以后我们都是配置这个属性来指定二级缓存的提供类-->
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.internal.EhcacheRegionFactory</property>
<!-- 二级缓存配置文件的位置 -->                     
<property name="
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值