`
虚弱的java
  • 浏览: 160093 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

Hibernate二级缓存的应用

阅读更多
Hibernate二级缓存的应用及其最佳实践
Hibernate从其诞生以来,其性能及效率一直为世人所诟病。正因为如此,有大部分人一直认为Hibernate不适合开发大项目。今天就让我们一步一步为Hibernate正名。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得程序员可以随心所欲的使用对象编程思维来操纵数据库。最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
1. 首先,我们了解下Hibernate的缓存机制。
Hibernate缓存机制对Hibernate的性能发挥一直处于一个极其重要的作用,它是持久层性能提升的关键。





图1-1
Hibernate缓存介于Hibernate应用和数据库之间,缓存中存放了数据库数据的拷贝。 其作用是减少访问数据库的频率,从而提高应用的运行性能。由图1-1可以看出,如果查询缓存命中率高,则性能也会相应的提升。
2. Hibernate缓存分类
2.1  一级缓存: Session级别的缓存 (不讲)
2.2  二级缓存: SessionFactory级别的全局缓存 (重点讲)。Hibernate并没有提供相应的二级缓存的组件,所以需要加入额外的二级缓存包,常用二级缓存包是ECHcache。
3. 操作步骤:
3.1在Hibernate.cfg.xml中配置开启二级缓存
<property name="hibernate.cache.use_second_level_cache">
true
</property>
3.2设置二级缓存所提供的类
<property name="hibernate.cache.provider_class">
net.sf.ehcache.hibernate.EhCacheProvider
</property>
3.3 在hibernate4.0之后需要设置Facotory_class,目的提生效率
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory
</property>
3.4设置相应的ehcache.xml文件,在这个文件中配置二级缓存的参数
3.4.1默认缓存
<defaultCache
        maxElementsInMemory="10000"//在内存中有1万个对象
        eternal="false"//是否永远不在内存中消失
        timeToIdleSeconds="120"//每个对象的最大空闲时间(单位:秒)
        timeToLiveSeconds="120"//每个对象的最大活时间(单位:秒)
        overflowToDisk="true"//当超过1万的,放到硬盘上面
        />
3.4.2 每一个独立的cache可以单独为不同的对象进行设置
    <cache name="simple"
        maxElementsInMemory="10000"
       eternal="false"
       timeToIdleSeconds="300"
        timeToLiveSeconds="600"
       overflowToDisk="true"
        />
4. 说明配置文件的位置
<property name="hibernate.cache.provider_configuration_file_resource_path">
ehcache.xml
</property>
5. 开启二级缓存
在xml的配置中设置
<class name="Department" table="SysDepartment">
    <cache usage="read-only"/>
注:二级缓存缓存的是对象,它是把所有的对象缓存到内存中,一定注意是基于对象的缓存。

1
3
分享到:
评论

相关推荐

    hibernate 3中的缓存小结

    2.3.1. Hibernate的二级缓存策略的一般过程如下: 1) 条件查询的时候,总是发出一条select * from table_name where …. (选择所有字段)这样的SQL语句查询数据库,一次获得所有的数据对象。 2) 把获得的所有数据...

    Hibernate缓存深入详解

    Hibernate缓存深入详解,详细介绍Hibernate缓存机制。 1.Hibernate缓存概述 2.Hibernate一级缓存(Session缓存) 3.Hibernate二级缓存 4.查询缓存 5.二级缓存的高级应用(分布式缓存)

    配置EhCache二级缓存

    配置 EhCache 的实例 1、 简介: EhCache缓存插件是Hibernate的另一个项目,Hibernate框架内置了对它 的支持,对于单机应用推荐使用它做为Hibernate的二级缓存。

    Hibernate缓存

    Hibernate缓存讲解PPT 1.Hibernate缓存概述 2.Hibernate一级缓存(Session缓存) 3.Hibernate二级缓存 4.查询缓存 5.二级缓存的高级应用(分布式缓存)

    Hibernate缓存策略(一级缓存、二级缓存).docx

    Hibernate是一个持久化框架,经常需要访问数据库。如果我们能够降低应用程序对物理数据库访问的频次,那会提供应用程序的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序运行时先从缓存中读写数据。

    hibernate基础教程

    二级缓存伴随着整个应用,也是就是伴随着SessionFactory消亡而消亡. Hibernate的缓存机构图如下: 三 Hibernate中的第二级缓存 Hibernate的第二级缓存是SessionFactory级别的缓存,它被所有的...

    hibernate缓存详解

    hibernate 缓存 详解 一级缓存 二级缓存 应用

    Hibernate的缓存机制.docx

    2、应用范围(单SessionFactory即二级缓存) 应用程序的缓存可以被应用范围内的所有事务共享访问.缓存的生命周期依赖于应用的生命周期,只有当应用结束时,缓存的生命周期才会结束.应用范围的缓存可以使用内存或硬盘...

    用二级缓存加速你的Hibernate应用

    NULL 博文链接:https://lee79.iteye.com/blog/320099

    Java框架篇?hibernate之缓存机制

    一、why(为什么要用Hibernate缓存?...)Hibernate缓存包括两大类:Hibernate一级缓存和Hibernate二级缓存。  1.Hibernate一级缓存又称为“Session的缓存”。  Session内置不能被卸载,Session的缓存是事

    Hibernate3性能优化 Hibernate_regerence3.12

    有很多人认为Hibernate天生效率比较低,确实,在...特别是应用二级缓存之后,甚至可以获得比较不使用缓存的JDBC更好的性能,下面介绍一些通常的 Hibernate的优化策略: 1.抓取优化 2.二级缓存 3.批量数据操作 4.杂项

    hazelnate:使用hazelcast 作为二级Hibernate缓存的示例应用程序

    该项目主要关注hazelcast 与hibernate 结合提供的分布式缓存能力。 其他强大的功能,如内存计算等(目前)没有涵盖。 快速开始 要启动应用程序,只需克隆 repo 并一个接一个地执行以下命令。 整个应用程序是使用 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     22.4.3 在应用程序中管理第二级缓存  22.4.4 Session与第二级缓存的交互模式  22.5 运行本章的范例程序  22.6 小结  22.7 思考题 第23章 管理Session和实现对话  23.1 管理Session对象的生命周期  23.1.1 ...

    通用后台管理系统(ExtJS 4.2+Hibernate 4.1.7+Spring MVC 3.2.8)

    4、Hibernate集成二级缓存框架Ehcache。 5、数据库是MySQL、Oracle和SQL Server,Hibernate的Dialect可使程序移植到其他数据库。 6、采用开源的互动地图Javascript库Leaflet,处理自定义在线地图。 7、采用Google ...

    Secode_level_cache.zip

    早在2008年开始,我们就借鉴了Java强大的ORM 框架Hibernate的二级对象缓存编写了这个Rails的AR对象缓存插件,并且一直作为JavaEye网站缓存优化的秘密武器来使用,取得了非常理 想的效果。 现在我们将这个插件从...

    Hibernate+中文文档

    3.4.4. 二级缓存与查询缓存 3.4.5. 查询语言中的替换 3.4.6. Hibernate的统计(statistics)机制 3.5. 日志 3.6. 实现NamingStrategy 3.7. XML配置文件 3.8. J2EE应用程序服务器的集成 3.8.1. 事务策略配置 ...

    hibernate操作数据库笔记

    //该方法会延迟加载/获取数据(只有使用该对象中的字段时才会向数据库发出查询语句),该方法会在内部和二级缓存中查找数据,当数据库中没有要查询的数据时报ObjectNotFoundException异常 (7).createQuery(String HQL)...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     22.4.3 在应用程序中管理第二级缓存  22.4.4 Session与第二级缓存的交互模式  22.5 运行本章的范例程序  22.6 小结  22.7 思考题 第23章 管理Session和实现对话  23.1 管理Session对象的生命周期  23.1.1 ...

Global site tag (gtag.js) - Google Analytics