`
melphi9
  • 浏览: 100258 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

对于hibernate缓存的简单理解

阅读更多
今天一口气看了几片关于hibernate的缓存的几片文章,我对hibernate的缓存机制更加了解了,其实也不用讲的很复杂,简单的说:
引用

    1。缓存机制的实现可以简单的看作是一个map,key是po的id,value是po本身

   2。hibernate的缓存分为两种,一级缓存可以称为session level cache,也可以认为是class级的缓存,但我更认为称为事务级的缓存更合适,因为这个一级缓存的生命周期由session决定,session创建时启用,消亡时结束。而通常事务提交时,session结束,因此以spring为例,aop拦截到方法,方法调用结束时,事务提交,一级缓存中的对象被清除,下次再调用同一方法时,是一个新的事务的开始,结果必然是从数据库中重新取得对象来填充但前session的一级缓存,前一次事务缓存的对象自然是无效的。

   3。hibernate的另一种缓存是二级缓存,二级缓存可以称为sessionFactory level cache,也可以称为应用级的缓存。二级缓存的目的是使同一个sessionFactory创建出来的session共享po,因而我甚至认为它是事务无关的。它的生命周期完全可以通过失效时间来控制,粗俗的理解就是你可以决定满足什么条件时,你缓存起来的对象可以从map中remove掉。

   4。说到这里,我忽然觉得,“在越高的层面上做缓存,效果就会越好”是很有道理的,底层的缓存缺乏针对性,永远不知道上层究竟要保存些什么数据,保存多久,已何种形式保存和更新更有力于上层应用的存取。

  
     不过不容置疑的是,缓存对性能的提升是十分必要的。
分享到:
评论

相关推荐

    Hibernate缓存与spring事务详解

    **标题:“Hibernate缓存与Spring事务详解”** 在IT领域,尤其是Java开发中,Hibernate作为一款流行的ORM(对象关系映射)框架,极大地简化了数据库操作。而Spring框架则以其全面的功能,包括依赖注入、AOP(面向切...

    hibernate缓存和事务

    Hibernate 是一个流行的对象关系映射(ORM)框架,它允许Java...通过理解Hibernate缓存和事务管理,以及如何有效地执行查询,开发者可以创建高效、健壮的Java应用程序,降低与数据库交互的复杂性,同时提升系统性能。

    hibernate入门简单实例

    这个“hibernate_first”压缩包提供了一个适合初学者的简单实例,帮助理解Hibernate的基础用法。以下是关于Hibernate入门的一些关键知识点: 1. **对象关系映射(ORM)**:ORM是将数据库中的表映射为Java类的过程,...

    hibernate对二级缓存的理解

    二级缓存的工作原理可以简单地理解为一个Map,其中Key代表对象的ID,Value则是对应的POJO对象。无论是通过list、load还是iterate操作,一旦从数据库中读取到对象,都会将其存入缓存。不过,值得注意的是,list操作...

    springboot+jpa(hibernate配置redis为二级缓存) springboot2.1.4

    对于需要缓存的实体类,可以使用`@Cacheable`、`@CacheEvict`等注解进行缓存控制,如: ```java @Entity @Cacheable(value = "myCache") public class MyEntity { // ... } ``` 5. **测试验证**: 创建一...

    hibernate缓存策略

    #### 一、理解Hibernate缓存 ##### 1.1 缓存概念 在软件开发领域,缓存技术是一项重要的优化手段,它可以显著提高应用程序的性能和响应速度。Hibernate作为一种持久层框架,其核心功能是提供对象关系映射(Object ...

    基于hibernate的简单留言本

    在"基于hibernate的简单留言本"项目中,理解并熟练掌握以上知识点是至关重要的。这个项目为初学者提供了实战经验,让他们更好地理解和运用Hibernate框架。通过此项目,开发者不仅可以熟悉Hibernate的基本操作,还能...

    Hibernate4二级缓存实例(源码)

    通过深入理解并实践这个源码实例,开发者可以掌握如何在实际项目中有效利用Hibernate的二级缓存,以及如何结合memcached实现高效的分布式缓存策略。这不仅能够提升应用程序的性能,还能降低对数据库的压力,是现代...

    hibernate最简单的例子,未整合其他框架

    这个压缩包文件“hibernate最简单的例子”提供了一个不涉及其他框架的纯净Hibernate应用实例,非常适合初学者学习和理解Hibernate的基本用法。 1. Hibernate简介: Hibernate是基于Java的开源ORM框架,它通过XML...

    Hibernate缓存笔记

    ### Hibernate缓存深入解析 #### 缓存的重要性与工作原理 缓存技术是提升系统性能的关键手段之一,尤其是在处理大量数据访问的应用程序中。通过减少对底层数据存储系统的直接访问频率,缓存能够显著加快数据读取...

    hibernate二级缓存 SSH

    SSH(Struts2、Spring、Hibernate)是一种经典的Java Web开发框架组合,用于构建高效、可扩展的Web应用程序。在这个项目中,"hibernate二级...这将是一个不错的实践项目,有助于理解SSH框架和Hibernate缓存的工作原理。

    hibernate最简单源代码

    【hibernate最简单源代码】是一个用于学习和理解Hibernate框架基本用法的代码示例。Hibernate是一个流行的Java ORM(对象关系映射)框架,它允许开发者以面向对象的方式操作数据库,极大地简化了数据访问层的开发...

    Spring4+Hibernate4二级缓存实例源码

    在IT行业中,尤其是在Java企业级应用开发中,Spring和Hibernate是两个非常重要的框架。Spring作为一个全面的轻量级容器,负责管理...同时,深入理解缓存的工作原理和最佳实践,对于优化系统的性能和架构有着重要意义。

    项目中使用 hibernate-memcached 做二级缓存

    首先,我们需要理解什么是Hibernate的二级缓存。在Hibernate框架中,一级缓存是每个Session级别的,它默认开启且自动管理,主要存储当前Session中的持久化对象。而二级缓存则是在SessionFactory级别,它可以跨...

    hibernate二级缓存

    通过理解和熟练运用Hibernate二级缓存,开发者可以显著提升系统的响应速度,降低数据库负载,从而为大型应用提供更好的性能保障。在实际应用中,结合具体业务场景,进行细致的调优,才能充分发挥二级缓存的优势。

    模拟hibernate中一级缓存

    在提供的"模拟hibernate中一级缓存"的案例中,我们可以创建一个简单的实体类,例如`User`,并使用Hibernate的Session接口进行操作。首先,通过`Session.get()`方法加载一个User对象,然后关闭Session。接着,再次...

    hibernate简单的入门案例

    **hibernate简单的入门案例** ...通过理解这些步骤,你可以开始深入学习Hibernate的高级特性,如级联操作、懒加载、缓存管理等。在实践中不断探索,你会发现Hibernate极大地简化了数据库操作,提高了开发效率。

    最简单的Hibernate工程

    6. 第二级缓存:了解Hibernate如何支持缓存机制,提高性能。 7. 事务管理:学习如何在Hibernate中进行事务的开启、提交和回滚。 通过这个"最简单的Hibernate工程",初学者可以快速掌握Hibernate的基本概念和用法,...

    Hibernate一级缓存和二级缓存【内附二级缓存数据存储结构】

    Hibernate作为Java领域中...总之,理解并熟练运用Hibernate的一级和二级缓存,对于优化Java应用程序的性能至关重要。通过合理配置和选择合适的缓存策略,我们可以有效地平衡性能和数据一致性,从而提高系统的整体效能。

    ibatis和hibernate的简单介绍

    - **Hibernate**的学习曲线较陡峭,需要对对象关系映射有深入理解。 3. **性能对比**: - 在大多数情况下,**ibatis**由于其灵活性和对SQL语句的精细控制,可能具有更好的性能表现。 - 而**Hibernate**通过其...

Global site tag (gtag.js) - Google Analytics