`
暗黑小菠萝
  • 浏览: 46936 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论

Hibernate(六)缓存

阅读更多
什么是Hibernate的缓存:
与计算机的内存cpu的一二级缓存无关。
Hibernate缓存是用来降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能的一种策略。

为什么使用缓存:
ORM框架访问数据库的效率直接影响应用程序的运行速度
Hibernate的缓存是提升和优化Hibernate执行效率的重要手段

Hibernate缓存的工作原理:
缓存是对数据源的复制,下一次再访问时直接从缓存中获取,Hibernate缓存存储在应用程序的内存中,从而提高效率


一、一级缓存

称Session缓存,会话级缓存。
一级缓存的生命周期和Session相同,Session销毁,它也销毁,可适用范围在当前会话内。
一级缓存是强制使用的无法取消的。
Session session = HibernateUtil.getSession();
Transaction transaction = session.beginTransaction();
Students s = (Students) session.get(Students.class, 2);
System.out.println(s.getSname());
s = (Students) session.get(Students.class, 2);
System.out.println(s.getSname());
transaction.commit();
session.close();

可以看到,虽然调用了两次get方法,缺只执行了一次select语句,第二次默认去缓存中查找的,注意是在同一个session中


一级缓存常用的API
①evict():用于对某个对象从session的一级缓存中清除
②clear():将一级缓存中所有对象全部清除
③flush():刷新一级缓存区的内容,使之与数据库数据保持同步。
注意:
常用的Query方法中,query.list()是不使用一级缓存的,每次都是重新查询数据库的。

二、二级缓存
又称为SessionFactory缓存,在每个session中共用的缓存。
使用二级缓存的场景:
①很少被修改的数据
②不重要的数据,偶尔并发
③不会被并发访问的数据
④参考数据

二级缓存不是强制使用的,使用之前需要配置相应的内容:
①添加二级缓存相应的jar包
②hibernate.cfg.xml中添加Provider类描述
<property name="cache.provider_class">net.sf.ehcache.hibernate.EhcacheProvider</property>
③添加二级缓存属性配置文件ehcache.xml
④在需要被缓存的表的映射文件中添加<cache/>标签
  • 大小: 18.7 KB
  • 大小: 21.2 KB
分享到:
评论

相关推荐

    HIBERNATE的缓存机制

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

    深入理解Hibernate缓存

    ### 深入理解Hibernate缓存 #### 一、Hibernate缓存概述 Hibernate作为一款流行的Java持久层框架,为开发者提供了高效且灵活的数据访问能力。其中,缓存机制是Hibernate性能优化的重要组成部分之一。理解Hibernate...

    管理Hibernate的缓存

    管理Hibernate的缓存缓存 管理Hibernate的缓存缓存

    Hibernate一级缓存、二级缓存以及查询缓存实例

    在Java的持久化框架Hibernate中,缓存机制是优化数据库操作性能的重要手段。本文将深入探讨Hibernate的一级缓存、二级缓存以及查询缓存,通过具体的实例来阐述它们的工作原理和使用方法。 首先,我们从一级缓存开始...

    Hibernate缓存深入详解

    【Hibernate缓存深入详解】 在Java的持久化框架Hibernate中,缓存机制是提升系统性能的关键因素。它位于Hibernate应用和数据库之间,减少了对数据库的直接访问,从而提高了应用程序的运行速度。缓存中存储的是...

    Hibernate的缓存策略

    #### 六、缓存的管理与优化 在实际应用中,还需要注意对缓存的管理和优化: - **缓存清理**:对于一级缓存,在进行大量数据更新时,应适当调用`clear()`方法来释放内存资源,避免内存溢出的风险。 - **缓存配置**...

    Hibernate缓存技术研究

    ### Hibernate缓存技术研究 #### 一、引言 Hibernate是一种强大的对象-关系映射(Object-Relational Mapping,简称ORM)工具,主要用于Java环境下的应用程序。它能够将应用程序中的对象模型映射到关系型数据库的表...

    Hibernate缓存深入详解 from ITEye

    **Hibernate缓存深入详解** 在Java企业级应用开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。然而,随着应用规模的扩大,数据访问性能成为了一个不可忽视的问题。这时,...

    Hibernate缓存.doc

    Hibernate缓存.docHibernate缓存.doc

    Hibernate缓存,性能优化

    本文将深入探讨Hibernate缓存的原理、类型及其对性能优化的影响。 ### Hibernate缓存原理 Hibernate缓存主要分为一级缓存和二级缓存。一级缓存,也称为会话缓存(Session Cache),是默认启用的,由Hibernate自动...

    hibernate一级缓存和二级缓存的区别与联系

    Hibernate 是一个流行的对象关系映射(ORM)框架,它提供了数据缓存机制以优化数据库访问性能。缓存机制分为一级缓存和二级缓存,两者都有助于减少对物理数据库的直接访问,从而提高应用程序的运行效率。 一级缓存...

    Hibernate二级缓存

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

    hibernate缓存机制

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

    Hibernate缓存策略

    Hibernate缓存原理及调优策略 Hibernate缓存原理调优策略

    hibernate缓存ehcache用法

    这篇博客文章“hibernate缓存ehcache用法”可能详细介绍了如何在Hibernate中配置和使用Ehcache。 首先,我们需要理解什么是缓存。缓存是一种存储技术,用于临时保存经常访问的数据,以减少对主存储器(如数据库)的...

    hibernate一级缓存、二级缓存和查询缓存

    **hibernate一级缓存、二级缓存和查询缓存** 在Java的持久化框架Hibernate中,缓存机制是提高应用程序性能的关键要素。缓存能够减少数据库的访问次数,提高数据读取速度,并且在一定程度上降低了系统的负载。本文将...

    hibernate的缓存机制

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

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

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

    Hibernate 使用缓存时,数据同步问题

    #### Hibernate缓存机制概述 Hibernate提供了两种缓存级别:一级缓存和二级缓存。 - **一级缓存**:存在于Session范围内,用于存储实体的实例和状态。当一个实体被加载到Session时,其状态会保存在一级缓存中,...

Global site tag (gtag.js) - Google Analytics