`
Jason__Chen
  • 浏览: 14870 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

hibernate中缓存机制

    博客分类:
  • JAVA
阅读更多
一级缓存、二级缓存和查询缓存
1 一级缓存是指session缓存,当同一个session查询相同数据时,可以直接去缓存中拿,但如果是不同session即使查询内容相同也得去重新查询数据库。
2 二级缓存是指sessionfactory缓存,可以跨越session存在,即使不同的session当查询相同内容可以直接从二级缓存中拿数据而不用去访问数据库。二级缓存需要借助外界工具

其中Type表示存储方式,Cluster Safe表示是否支持集群,Query Cache supported表示是否直接查询缓存。
2.1. 打开二级缓存的方法是在hibernate.cfg.xml中配置:
<property name="cache.use_second_level_cache">true</property>
        <property name="cache.provider_class">org.hibernate.cache.EhCacheProvider </property>
然后将ehcache的jar包和commons-logging包放入项目中
2.2. 然后配置类,如果使用的是annotation的方式,则在@Entity下加上
@Cache(usage= CacheConcurrencyStrategy.READ_WRITE)
如果使用的是配置xml的方式,则在对应的hbm.xml中Class下配置
<cache usage="read-write"/>
Cache的属性有三个
   usage="transactional|read-write|nonstrict-read-write|read-only"    region="RegionName"                                                 include="all|non-lazy"
usage(必选)说明了缓存的策略: transactional、 read-write、 nonstrict-read-write或 read-only一般使用的是read-write
region(可选, 默认为类或者集合的名字(class or collection role name))指定第二级缓存的区域名(name of the second level cache region)
include(可选,默认为 all)non-lazy 当属性级延迟抓取打开2.3. 关于二级缓存的使用:load,iterator默认使用二级缓存,list默认往二级缓存中存数据,但查询的时候不适用二级缓存,如果希望查询的时候也使用缓存则可以使用“查询缓存” :使用的方法是在hibernate.cfg.xml中加入
<property name="cache.use_query_cache">true</property>
然后在query对象后加setCacheable(true)如:
List<Husband> list1 = (List<Husband>)session1.createQuery("from Husband").setCacheable(true).list();
分享到:
评论
3 楼 happy_txf 2010-10-25  
支持楼上。。
2 楼 笑我痴狂 2010-10-24  
都是些配置的具体步骤   百度一下都能找到   没什么意思  要讲就讲讲什么时候用缓存  但不是所有的情况都适合  关于这个可以深入探讨一下
1 楼 1927105 2010-10-24  
恩,讲的蛮好的,,,

相关推荐

    HIBERNATE的缓存机制

    Hibernate缓存机制是提高应用程序性能的关键特性,尤其是在频繁与数据库交互的应用中。缓存通过减少对物理数据库的直接访问次数,显著提升了数据读取和写入的速度。这主要是因为从缓存中读取数据比从数据库中获取更...

    hibernate缓存机制

    Hibernate缓存机制是提高应用程序性能的关键技术之一,它通过存储数据副本减少对物理数据库的访问。缓存可以分为两层:第一级缓存和第二级缓存。 **第一级缓存**是内置在Session中的,它是不可卸载的,也称为...

    hibernate的缓存机制

    在Java的持久化框架Hibernate中,缓存机制扮演着至关重要的角色,它能够显著提升数据访问的性能。缓存可以分为一级缓存和二级缓存,以及查询缓存。 **一级缓存**: 一级缓存是Hibernate内置的Session缓存,它是每个...

    Hibernate的缓存机制

    使用Hibernate的缓存机制需要注意,虽然可以提高应用性能,但过度依赖缓存可能导致数据不一致,特别是在高并发环境中。因此,正确配置缓存策略,根据业务需求选择合适的缓存范围和并发访问策略,是保证系统稳定性和...

    hibernate的缓存机制和session对象的产生方式案例

    在Java的持久化框架Hibernate中,缓存机制和Session对象的管理是其高效运作的关键要素。本文将深入探讨这两个主题,以帮助开发者更好地理解和利用Hibernate。 首先,让我们聚焦于Hibernate的缓存机制。缓存的存在是...

    Hibernate的缓存机制.docx

    Hibernate的缓存机制是优化数据库访问性能的关键组成部分。在Hibernate中,缓存主要分为三个层次:一级缓存、二级缓存以及集群范围的缓存。 一级缓存,也称为Session缓存,存在于单个Session实例中。其目的是减少对...

    基于hibernate的缓存机制

    基于hibernate的缓存机制,这个是打包后的jar包。

    详解Hibernate的缓存机制及其配置代码

    ### 详解Hibernate的缓存机制及其配置代码 #### 一、缓存概念及目的 缓存作为一种优化技术,在软件开发中扮演着极其重要的角色。它位于应用程序与物理数据源(如数据库)之间,用于临时存储数据的副本,旨在减少...

    Hibernate的缓存机制归纳.pdf

    Hibernate的缓存机制归纳.pdf

    Java框架篇—hibernate之缓存机制_.docx

    【Java框架篇—hibernate之缓存机制】 在Java开发中,Hibernate是一个广泛应用的持久化框架,它简化了数据库操作。缓存机制是Hibernate优化性能的关键组成部分,它减少了对物理数据库的直接访问,从而提高了应用...

    Hibernate缓存机制探讨

    在配置Hibernate缓存时,需要明确哪些实体或查询结果应该缓存,并设置相应的缓存策略。例如,我们可以使用`@Cacheable`注解标记实体类,使用`@Cache`注解来定义缓存区域和策略。同时,对于查询结果的缓存,可以使用`...

    Hibernate缓存机制,转载

    **标题:“Hibernate缓存机制,转载”** **描述:**这篇博客主要探讨了Hibernate框架中的缓存机制,包括一级缓存和二级缓存的概念、工作原理以及如何在实际开发中应用。 **标签:“源码 工具”** **知识点详解:*...

    hibernate缓存机制分析共17页.pdf.zip

    《Hibernate缓存机制详解》 Hibernate,作为Java领域中广泛使用的对象关系映射(ORM)框架,极大地简化了数据库操作。其缓存机制是优化性能的关键组成部分,它减少了对数据库的直接访问,提高了数据处理效率。本文...

    Hibernate缓存机制解说

    ## Hibernate缓存机制详解 ### 一、缓存分类与管理 Hibernate提供了两种主要的缓存类型:一级缓存和二级缓存。 #### 1. 一级缓存 一级缓存也称为Session缓存,它在同一个Session中对数据的多次读取操作只需要一...

    Hibernate缓存机制.txt

    Hibernate缓存机制.txt

    Hibernate缓存机制探讨.doc

    ### Hibernate缓存机制详解 #### 一、概述 Hibernate 是一款流行的 Java 持久层框架,它简化了 Java 应用程序与数据库交互的过程。然而,直接使用 JDBC 访问数据库存在一定的性能开销。为了提升性能,Hibernate ...

    深入理解Hibernate缓存

    一级缓存是Hibernate中最基本的缓存机制,由每个`Session`实例维护。当一个实体对象被加载到`Session`中时,该对象会被存储在一级缓存中,这样在同一个`Session`生命周期内再次请求同一对象时,Hibernate将直接从...

Global site tag (gtag.js) - Google Analytics