`

hibernate配置二级缓存的两种方式

 
阅读更多
Hibernate二级缓存也称为进程级的缓存或SessionFactory级的缓存。二级缓存是全局缓存,它可以被所有的session共享。二级缓存的生命周期和SessionFactory的生命周期一致,SessionFactory可以管理二级缓存。
二级缓存的配置使用:

1.在src下创建echcache.xml文件,其内容如下:

<ehcache> 
<diskStore path="java.io.tmpdir"/> 
<defaultCache maxElementsInMemory="10000" eternal="false" overflowToDisk="true" timeToIdleSeconds="120" timeToLiveSeconds="120" diskPersistent="false" /> 
</ehcache>


maxElementsInMemory属性用于指定缓存中最多可放多少个对象。
eternal属性指定缓存是否永久有效。
timeToIdleSeconds属性指定缓存多久未被使用便清理掉。
timeToLiveSeconds属性指定缓存的生命长度。
diskPersistent属性指定缓存是否被持久化到硬盘中,保存路径由<diskStore>标签指定。

2.修改hibernate.cfg.xml文件开启二级缓存。

<hibernate-configuration> <session-factory> <!-- 开启二级缓存 --> <property name="hibernate.cache.use_second_level_cache">true</property> <!-- 设置缓存提供者 --> 
<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
<mapping resource="cn/ineeke/entity/User.hbm.xml"/> </session-factory> 
</hibernate-configuration>


3.指定哪些实体类使用缓存。经过第二步缓存是启用了,但是并没有被使用。它不会去自动把所有的实体都进行缓存了,而是需要手动指定哪个实体需要缓存,以及其缓存的策略。这里有两种方式,

第一种是修改要使用缓存的实体的映射文件。如在User.hbm.xml中使用<cache>标签启用。

<hibernate-mapping> 
<class name="cn.ineeke.entity.User" table="t_user"> 
<cache usage="read-only"/> 
<id name="id"> 
 <generator class="native"/> 
</id> <property name="name"/> 
</class> 
</hibernate-mapping>


第二种方式是在hibernate.cfg.xml中使用<class-cache>标签指定实体类并启用。

<hibernate-configuration> <session-factory> <!-- 开启二级缓存 --> <property name="hibernate.cache.use_second_level_cache">true</property> <!-- 设置缓存提供者 --> 
<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property> 
<mapping resource="cn/ineeke/entity/User.hbm.xml"/> <!-- 指定哪些实体需要使用二级缓存 --> 
<class-cache class="cn.ineeke.entity.User" usage="read-only"/> </session-factory> 
</hibernate-configuration>

<calss-cache>标签中的class属性指定要对哪个实体进行缓存,而usage属性与<cache>标签的相同,都指的是缓存策略,此值依实际需要而定,默认采用read-only。


常用的缓存插件 Hibernater二级缓存是一个插件,下面是几种常用的缓存插件:
◆EhCache:可作为进程范围的缓存,存放数据的物理介质可以是内存或硬盘,对Hibernate的查询缓存提供了支持。
◆OSCache:可作为进程范围的缓存,存放数据的物理介质可以是内存或硬盘,提供了丰富的缓存数据过期策略,对Hibernate的查询缓存提供了支持。
◆SwarmCache:可作为群集范围内的缓存,但不支持Hibernate的查询缓存。
◆JBossCache:可作为群集范围内的缓存,支持事务型并发访问策略,对Hibernate的查询缓存提供了支持。



分享到:
评论

相关推荐

    Hibernate二级缓存

    Hibernate二级缓存是一种提高应用程序性能的技术,它将数据存储在SessionFactory级别的缓存中,使得数据可以在不同的Session之间共享。这与一级缓存(Session级别)不同,一级缓存仅存在于单个Session生命周期内,当...

    hibernate二级缓存实例

    在这个"hibernate二级缓存实例"中,我们将深入探讨二级缓存的原理、配置以及在实际项目中的应用。 首先,我们需要了解一级缓存和二级缓存的区别。一级缓存是Session级别的,每个Session都有自己的一级缓存,用于...

    Hibernate一级缓存和二级缓存

    **二、Hibernate二级缓存** 二级缓存是SessionFactory级别的,跨越了多个Session,可以被多个线程共享。它通常由第三方插件如EhCache、Infinispan等提供。二级缓存分为以下几种类型: 1. **集合缓存**:用于存储...

    Spring4+Hibernate4二级缓存实例源码

    本实例源码着重展示了如何在Spring4和Hibernate4中配置并使用二级缓存。 首先,我们需要理解什么是二级缓存。在Hibernate中,一级缓存是每个Session级别的,它存储了当前Session中所有持久化对象的副本,当Session...

    Hibernate二级缓存+分页功能

    **一、Hibernate二级缓存** Hibernate一级缓存是指Session级别的缓存,它是默认开启的,每个Session都会维护一个对象缓存,用来存放该Session加载的实体对象。一级缓存的生命周期与Session相同,当Session关闭时,...

    hibernate二级缓存

    ### 配置Hibernate二级缓存 在提供的部分代码示例中,我们看到了如何在Hibernate配置文件中启用二级缓存: ```xml &lt;property name="cache.use_second_level_cache"&gt;true &lt;property name="cache.provider_class"&gt;...

    Hibernatehibernate二级缓存.pdf

    2. 在Hibernate配置文件(如hibernate.cfg.xml)中开启二级缓存,通过设置`&lt;property name="hibernate.cache.use_second_level_cache"&gt;true&lt;/property&gt;`。 3. 指定缓存提供商,例如`&lt;property name="hibernate.cache...

    Hibernate二级缓存配置详解

    《Hibernate二级缓存配置详解》 在Java的持久化框架Hibernate中,缓存技术是提升系统性能的关键之一。本文将深入探讨Hibernate的二级缓存,包括其事务范围、进程范围和集群范围的配置,特别是关注进程范围内的...

    hibernate二级缓存jar包

    Ehcache提供了本地缓存、分布式缓存以及缓存的持久化等功能,这使得它成为Hibernate二级缓存的理想选择。在提供的压缩包中,包含了Ehcache的两个不同版本:1.2.3和3.0.2。 1.2.3版的Ehcache是较早的一个稳定版本,...

    Hibernate二级缓存.doc

    ### Hibernate二级缓存详解 #### 一、概述与背景 Hibernate作为一款优秀的Java持久层框架,在提高开发效率的同时,也面临着性能优化的问题。缓存机制是解决这一问题的关键技术之一。Hibernate提供了两种缓存机制:...

    day37 03-Hibernate二级缓存:集合缓冲区特点

    标题中的“Hibernate二级缓存:集合缓冲区特点”是指在使用Hibernate进行数据库操作时,对二级缓存中集合数据管理的特性和优化策略。Hibernate是一个流行的Java ORM(对象关系映射)框架,它允许开发者以面向对象的...

    day37 07-Hibernate二级缓存:查询缓存

    在IT行业中,数据库操作是...在给出的压缩包文件"hibernate3_day03"中,可能包含了与Hibernate二级缓存相关的代码示例、配置文件或者教程文档,进一步的学习和实践可以从这些资源入手,加深对二级缓存的理解和运用。

    hibernate二级缓存实例中需要的jar包.rar

    本资源“hibernate二级缓存实例中需要的jar包.rar”包含了实现Hibernate二级缓存功能所需的库文件,下面我们将详细讨论相关的知识点。 首先,Hibernate的二级缓存分为两种主要类型:查询缓存和集合缓存。查询缓存...

    SSH框架网上商城项目第16战之Hibernate二级缓存处理首页热门显示

    在`hibernate.cfg.xml`配置文件中,我们需要设置二级缓存的提供者为`EhCacheRegionFactory`,并指定哪些类(如`Product`类)需要支持缓存。这里使用了`read-only`策略,意味着一旦数据被加载到缓存,就不会被修改,...

    Hibernate的缓存策略

    - **外置缓存**:又称为Hibernate的二级缓存,是一个可配置的插件,默认情况下不会启用。二级缓存中的数据是数据库数据的副本,存储介质可以是内存或硬盘。 - **应用场景**:适用于跨`Session`的数据共享,可以...

    模拟hibernate中一级缓存

    在实际开发中,可以结合二级缓存(如 Ehcache 或 Redis)进一步优化数据访问效率,实现更高效的缓存策略。 总结,Hibernate的一级缓存是提升应用程序性能的重要工具。它在Session内部提供了一种内存级别的缓存机制...

    hibernate二级缓存相关插件(EHcache)

    **一、Hibernate二级缓存** 二级缓存是Hibernate中的一个可选特性,用于存储那些频繁访问但不经常变化的数据。与一级缓存相比,二级缓存的大小更大,且可以跨进程或跨服务器共享。这样,当多个用户同时请求相同数据...

    Hibernate一级缓存和二级缓存详解

    Hibernate是一种流行的基于Java的持久化框架,它提供了两种缓存机制:一级缓存和二级缓存。了解这两种缓存机制是非常重要的,因为它们可以极大地提高应用程序的性能。 一级缓存 一级缓存是Session级别的缓存,一个...

    Hibernate缓存技术研究

    Hibernate的缓存机制分为两层:第一级缓存(Session缓存)和第二级缓存(SessionFactory缓存)。这两种缓存分别服务于不同的应用场景和目的。 ##### 1. 第一级缓存(Session缓存) - **定义**:第一级缓存是在`...

Global site tag (gtag.js) - Google Analytics