`
lvwenwen
  • 浏览: 955410 次
  • 性别: Icon_minigender_1
  • 来自: 魔都
社区版块
存档分类
最新评论

浅析hibernate缓存机制

阅读更多
浅析hibernate缓存机制
  hibernate缓存存储的是数据对象的拷贝,介于应用程序和物理数据源之间。缓存的介质一般是内存,所以读写速度很快。使用缓存可以减少对数据库的访问,提高性能。位于缓存中的对象称为持久化对象。

  hibernate缓存分为两种:

  一、Session的缓存(hibernate的第一级缓存)

  当程序调用Sessionsave()update()get()或者load()list()iterate()方法时,如果Session缓存里还没有该对象时,就会存入缓存中,如果已经存在就直接从缓存里拿出来操作。

  当缓存清理时,hibernate就会把对象持久化进数据库。

  session什么时候进行缓存清理:

  1.调用commit()方法时

  2.查询对象时

  3.session进行flush()刷新时

  二、SessionFactory的缓存(hibernate的第二级缓存)

  引用: 分为内置缓存和外置缓存。内置缓存是SessionFactory对象的一些集合属性包含的数据,外置缓存是指Session的一些集合属性包含的数据

  1.内置缓存 中存放了映射元数据和预定义SQL语句,映射元数据是映射文件中数据的拷贝,而预定义SQL语句是在Hibernate初始化阶段根据映射元数据推导出来,SessionFactory的内置缓存是只读的,应用程序不能修改缓存中的映射元数据和预定义SQL语句,因此SessionFactory不需要进行内置缓存与映射文件的同步。

  2.外置缓存 是一个可配置的插件。在默认情况下,SessionFactory不会启用这个插件。外置缓存的数据是数据库数据的拷贝,外置缓存的介质可以是内存或者硬盘。SessionFactory的外置缓存也被称为Hibernate的第二级缓存。

  可以理解为在Session缓存的高一级缓存,每次调用查询语句时,会把对象按照ID保存在二级缓存SessionFactory

  当根据ID获取对象时,首先从一级缓存session中查找,如果找不到再到二级缓存sessionFactory中查,还是查不到再到数据库查。

  查询过程是这样滴:session --> sessionFactory --> DB

分享到:
评论

相关推荐

    浅析Java的Hibernate框架中的缓存和延迟加载机制

    主要介绍了Java的Hibernate框架中的缓存和延迟加载机制,Hibernate是注明的Java下SSH三大web开发框架之一,需要的朋友可以参考下

    浅析Hibernate下数据批量处理方法.doc

    标题"浅析Hibernate下数据批量处理方法"和描述中提到,早期的Hibernate在批量插入时可能存在效率问题,但最新版本已经进行了优化,例如通过设置`batch_size`参数来提高批量处理的性能。`batch_size`设置的是JDBC...

    H5 缓存机制浅析 - 移动端 Web 加载性能优化.pdf

    H5 缓存机制浅析 - 移动端 Web 加载性能优化

    HTML5缓存机制浅析:移动端Web加载性能优化

    摘要:本文作者,腾讯游戏平台与社区产品部安卓开发组高级工程师贺辉超详细分析了各种缓存机制的原理、用法及特点,并针对Android移动端Web性能加载优化的需求,帮助开发者选择如何利用适当缓存机制来提高Web的加载...

    浅析IE浏览器关于ajax的缓存机制

    因为,在默认情况下,IE会缓存ajax的请求结果。对于同一个URL地址,在缓存过期之前,只有第一次请求会真正发送到服务端。大多数情况下,我们使用ajax是希望实现局部刷新的,所以这就牵扯到一个改进的问题。  如果想...

    浅析Python垃圾回收机制.pdf

    "浅析Python垃圾回收机制" Python垃圾回收机制是指在Python程序执行过程中,动态申请内存空间,并在不再需要使用这些内存空间时释放它们,以避免内存泄漏。Python中的垃圾回收机制主要以引用计数为主,标记清除和分...

    论坛系统 hibernate jsp hibernate 毕业论文项目

    - 性能优化:缓存策略、数据库索引、负载均衡等。 6. **开发流程**:项目通常遵循敏捷开发模式,包括需求分析、系统设计、编码实现、单元测试、集成测试、性能优化、部署上线等步骤。在开发过程中,可能会使用版本...

    jQuery的缓存机制浅析

    《jQuery的缓存机制浅析》 jQuery是一个广泛使用的JavaScript库,它提供了许多方便的API,其中就包括了强大的缓存机制。缓存系统在优化性能、减少不必要的网络请求以及管理DOM元素的数据方面起着至关重要的作用。...

    深入浅析Mybatis与Hibernate的区别与用途

    "深入浅析Mybatis与Hibernate的区别与用途" Mybatis和Hibernate都是orm数据库框架,但是它们有着很大的区别。在本文中,我们将对Mybatis和Hibernate的区别与用途进行详细的分析。 自动化程度 Mybatis是半自动的,...

    浅析Wakelock机制与Android电源管理.pdf

    浅析Wakelock机制与Android电源管理.pdf 摘要: 本文浅析了Android电源管理机制,特别是Wakelock机制在Android电源管理中的应用。Android电源管理是Android操作系统中的一项重要功能,旨在有效地管理电源,延长设备...

    浅析SpringCache缓存1

    Spring Cache 是 Spring 框架从 3.1 版本开始引入的一个强大特性,它提供了一种透明化的缓存机制,允许开发者在不修改原有业务代码的基础上,轻松地为应用程序添加缓存功能。这个抽象层使得我们可以使用不同的缓存...

    浅析Android手机传感器机制及应用设计举例.pdf

    《浅析Android手机传感器机制及应用设计举例》这篇文章主要探讨了Android智能手机中传感器的工作机制以及如何利用这些传感器进行应用设计。Android系统为开发者提供了丰富的传感器接口,使得开发者能够充分利用手机...

    浅析Linux中的共享内存机制.pdf

    浅析Linux中的共享内存机制.pdf

    浅析java程序中hibernate的应用总结

    总之,Hibernate通过ORM简化了Java应用程序与数据库的交互,提供了高效的查询方式,同时支持延迟加载和缓存机制,提高了系统性能。在实际应用中,合理利用这些特性可以有效优化代码并提升系统的响应速度。

    信息安全_数据安全_浅析WAF机制.pdf

    浅析WAF机制 APT web安全 网络安全 培训与认证 信息安全研究

    浅析我国企业激励机制的运用毕业论文.doc

    浅析我国企业激励机制的运用毕业论文.doc

    浅析企业员工激励机制存在的问题及对策.doc

    浅析企业员工激励机制存在的问题及对策.doc

Global site tag (gtag.js) - Google Analytics