Hibernate4 二级缓存很浅的一些配置和认识

hibernate4配置二级缓存 hibernate4配置ehcache二级缓存,以及相关的jar都在源码中。 立即下载


小生不才,之前一直使用的是Ibatis,hibernate也就自己玩的时候用过一阵子,现在改用Hibernate之后发现这个东西还是很舒服的。


文章很浅,如果深究性能可能没什么营养了微笑


首先要说说为什么要用二级缓存:

不说概念就说我理解的,就一句话,减少服务器压力,好了,不说废话,直接介绍原理:

二级缓存在什么方式下可以使用呢:

在通常情况下会将具有以下特征的数据放入到二级缓存中: 
 修改少的
相对来说不是很重要(这个按实际情况考虑吧),允许并发的
不会被第三方修改的数据
常量数据。 

而对于具有以下特征的数据则不适合放在二级缓存中: 
 修改频繁的数据
财务数据坚决不要放到二级缓存中去,除非你想给财务添麻烦 
 第三方可以修改的数据


最重要的是这个第三方,什么是第三方,在这里包括JDBC和手动修改其他应用和框架修改都算,只要你不是通过hibernate对数据修改,那么很抱歉,hibernate不知道你做了什么,根本无法保证二级缓存的和数据库的一致。


开启与使用Hibernate:

1.需要的JAR包:

ehcache-core-2.4.3.jar

hibernate-ehcache-4.2.2.Final.jar

没有slf4j-api-1.6.1.jar自己加上这个

2.如果你用的不是maven那么自己去下jar包解压缩,如果用了maven去对应仓库找,给个官方的配置:

<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>版本号自己填</version>
</dependency>

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>版本号自己填</version>
</dependency>

注意:ehcache-core 在某些 maven 仓库提供的 hibernate-ehcache 中已经包含,所以,如果我们想用的话,直接调用即可。

3.开启二级缓存,网上大多数介绍的是单独使用hibernate但是只使用hibernate在实际开发中很少遇到,所以我以整合Spring为例子:在

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">

........

<property name="hibernateProperties">
<props>
........
<prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.SingletonEhCacheProvider</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>

........
</props>
</property>

hibernate.cache.provider_class 是插件类(影响到的是你具体要用哪一个)

这里说明一下我用的是4.2.2-final ,不知道是不是版本的原因,网上很多朋友没有加Factory参数,但是必须要加,否则报错!

<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory</prop>

接下来是关于DAO层的改造,建议在配置文件中将hibernate.generate_statistics设置为True因为这样的话,我们可以通过以下的方式获取命中率和MISS值:

可以调用Statistics s = getSessionFactory().getStatistics();

然后将其中的

System.out.println("put:"+s.getSecondLevelCachePutCount());  
System.out.println("hit:"+s.getSecondLevelCacheHitCount());  
System.out.println("miss:"+s.getSecondLevelCacheMissCount()); 

一一输出。


Hibernate4二级缓存实例(源码) 用memcached实现 Hibernate4二级缓存的实例源码。 立即下载

相关推荐

Hibernate4(关系映射-事务-原理-性能和二级缓存-最佳实践)

Hibernate4(关系映射-事务-原理-性能和二级缓存-最佳实践).Hibernate4(关系映射-事务-原理-性能和二级缓存-最佳实践).

Hibernate4之二级缓存配置

缓存:缓存是什么,解决什么问题?  位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为缓存Cache。缓存目的:让数据更接近于应用程序,协调速度不匹配,使访问速度更快。  缓存的范围分为3类:  1.事务范围(单Session即一级缓存)     事务范围的缓存只能被当前事务访问,每个事务都有各自的缓存,缓存内的数据通常采用相互关联的对象形式.缓存的

runming56的专栏 4万+

新手学习Vivado XDMA (1) - 配置详细分析

PCIe 在 Vivado XDMA 中的配置分析。

qq_18553915的博客 9706

hibernate4二级缓存

hibernate配置:      false   org.hibernate.cache.ehcache.EhCacheRegionFactory ehcache.xml配置:             maxElementsInMemory="1000"         eternal="false"         timeToIdleSeconds="300

嵇康的专栏 571

【实战指南】OpenClaw Telegram 群聊不响应完整解决方案:从获取群 ID 到关闭隐私模式全流程

将整个从“获取群组 ID → 配置 OpenClaw Telegram 通道 → 关闭隐私模式 → 测试”的全流程都整合进去。

hampeter的博客 3487

Mininet 2.2.1 图形可视化界面使用注意事项

前言 关于mininet的安装,网上教程不少,大致可以参考以下这篇文章: https://blog.youkuaiyun.com/linyixiao88/article/details/65651390 安装的时候,也可以不必根据上面这篇文章这么麻烦,直接sudo apt-get install mininet,即可。 Mininet可视化 Mininet 2.2.0以上版本内置了...

裕东方的博客 4190

配置Hibernate4二级缓存提升查询性能

Hibernate比JDBC程序要稍慢一点,但是如果用好Hibernate,性能还是可以接近JDBC的,在Hibernate中,可以使用二级缓存来提升Hibernate的查询性能,二级缓存采用ehcache框架开发,ehcache框架是开源社区很火的一个缓存框架,亚马逊将ehcache开发成了分布式的缓存架构,在hibernate中依然采用的是本机模式缓存,使用缓存可以提高Hibernate的性能

死牛崇拜的专栏 5103

保姆级教程:在iQuant平台从零写一个Python量化策略(附完整代码示例)

本文提供了一份详细的iQuant平台Python量化策略开发教程,从环境准备到策略实现、回测优化,再到实盘运行,每个步骤都配有完整代码示例和常见问题解决方案。适合量化交易新手快速上手,掌握双均线策略等核心开发技巧。

weixin_42783709的博客 479

性能优化之Hibernate4配置二级缓存

配置JavaBean缓存的三种方式 配置步骤配置JavaBean缓存的三种方式①在使用JPA规范的bean中,添加·Cache注解,eg. @Entity @Table(name = “t_area”) @Cache(usage = CacheConcurrencyStrategy.READ_ONLY) class Area{…} hibernate有4种

nanphonfy(南风) 1683

解决fetch_california_housing数据集403错误的三种实用方法

本文针对机器学习初学者加载fetch_california_housing数据集时常见的HTTPError 403: Forbidden错误,提供了三种经过实测的解决方案。详细介绍了手动下载与本地替换、修改源码下载路径以及配置网络访问策略的具体步骤,帮助用户根据自身网络环境和开发场景选择最佳方法,确保数据集顺利加载。

weixin_29074295的博客 550

手把手教你学Simulink--控制执行场景实例:基于Simulink的智能车辆自动紧急制动(AEB)仿真

本文完成了基于 Simulink 的智能车辆自动紧急制动(AEB),实现了:✅ 构建前车急刹与静止障碍物典型场景✅ 设计基于 TTC 的三级 AEB 决策逻辑✅ 验证在高风险场景下有效避免碰撞✅ 掌握从风险评估到制动执行的完整安全链✅ 为ADAS 主动安全功能开发奠定基础。

MHD0815的博客 236

hibernate4 二级缓存demo实例

转自:http://cxl2012.iteye.com/blog/1944489#comments 配置一目了然 hibernate使用版本是:hibernate-release-4.2.5.Final 需要的jar包:hibernate-release-4.2.5.Final\lib\required下所有jar包 ehcache  jar包:hibernate-rele

stan503的专栏 2089

在 SAP HANA 里为视图创建 Analytic Privilege,真正把同一份数据按角色切开

摘要:本文介绍了SAP HANA中基于业务角色的动态数据权限控制方法。通过Analytic Privilege技术,可以在同一视图上为不同角色设置不同的数据访问范围,实现行级安全控制。核心机制包括:1) 创建带有STRUCTURED PRIVILEGE CHECK的视图;2) 建立授权对象和用户映射表;3) 开发条件提供过程动态生成过滤条件;4) 创建结构化权限对象绑定条件提供器。这种设计使权限规则与业务数据解耦,便于维护变更,适合销售区域、财务数据等多角色访问控制场景。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2390

Spring整合Hibernate4二级缓存

以常见的EhCahe为例介绍Spring结合Hibernate二级缓存的用法 现在已经把Hibernate的配置文件整合到Spring的配置文件applicationContext.xml中, 1、在Bean为sessionFactory的hibetnateProperties开启二级缓存。需要做两件事: a、设置启用二级缓存 b、设置二级缓存的实现类 <bean id="s

z530650681的专栏 3344

实战:RK3568 Android14 调试 ES8388 音频驱动 (MIC 篇)

这个板子的MIC设计使用了硬件自动切换方案,极大简化了软件层面的逻辑。我们不需要根据耳机插拔事件去编写复杂的路由切换代码,只需要守住 LIN1/RIN1 这一个入口,配置好增益,剩下的交给那颗 SGM3157 芯片即可。祝您的录音功能调试顺利!

qq_33427070的博客 1677

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

说说自己对hibernate一级、二级、查询、缓存的理解。

今天面试碰到答不上来。。马上回家查了下,现在写下对hibernate缓存的理解以加深印象。 1、一级缓存 可以简单的理解为session缓存,即同一个session中使用get、load、迭代,会优先重缓存中取,如果没有则查询数据库并存入缓存,session关闭后缓存清空 2、二级缓存 可以直接理解为升级版,即sessionFactory 缓存,即只要使用的session是

Reiner的专栏 3159

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Hibernate4之二级缓存(十六)

一、配置 Hibernate二级缓存 1. 缓存的概念: 缓存是介于物理数据源与应用程序之间, 是对数据庫中的数据复制一份l临时放在内存或者硬盘中的容器,其作用是为了减少应用程序对物理数据源访问的次数,从而提高了应用程序的运行性能, Hibemate在进行读取数据的时候,根据缓存机制在相应的缓存中査询,如果在缓存中找到了需要的数据(我们把这称做“缓存命中·),则就直接把命中的数据作为结...

newbeedaly的博客 459

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Hibernate4 二级缓存配置

1、Hibernate配置文件开启二级缓存 true org.hibernate.cache.ehcache.EhCacheRegionFactory ehcache.xml 【注意】 这里使用的是hibernate4.xx版本,如果是hibernate3.xx版本,则二级缓存提供类改为如下配置: net.sf.ehcache.hibernate.EhCacheProvider

走过的足迹 3195

Hibernate4之二级缓存

[size=medium][b]缓存:缓存是什么,解决什么问题?[/b] 位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为缓存Cache。缓存目的:让数据更接近于应用程序,协调速度不匹配,使访问速度更快。 [b]缓存的范围分为3类:[/b] [color=blue]1.事务范围(单Session即一级缓存)[/color] 事务范围的缓存只能...

一日一博 313

hibernate4之二级缓存

  1. 使用 Hibernate 二级缓存的步骤:   1). 加入二级缓存插件的 jar 包及配置文件:   I. 复制 \hibernate-release-4.2.4.Final\lib\optional\ehcache\*.jar 到当前 Hibrenate 应用的类路径下. II. 复制 hibernate-release-4.2.4.Final\project\etc\...

langdashu 215

DNS 不是把域名翻译成 IP:递归解析、TTL 缓存、CNAME 与报文排错实战

本文通过离线Python实验,拆解DNS递归解析、缓存机制与报文结构,揭示“DNS不是全局映射表”的本质。重点解析递归器角色、TTL衰减、CNAME链处理、负缓存隔离及修改记录延迟生效等核心问题,结合实战排错案例,阐明缓存层级、事务匹配、截断处理与安全边界,强调从应用到权威的逐层排查逻辑,实现可复现、可验证的DNS教学系统。

此人很懒,什么都没有写~~ 345

Spring Boot 工程通用能力建设:声明式事务定制与 Redis 缓存实践

本文探讨Spring Boot中声明式事务的进阶实践,通过解耦“切点”与“事务属性”,实现灵活控制。核心包括:基于方法名的只读规则(如get*、find*自动设为只读),组合事务属性源确保@Transactional注解优先于命名规则,以及自定义切点实现事务统一织入。该方案提升代码可维护性,避免误写,同时支持特殊场景覆盖,构建更健壮的事务治理体系。

BADAO_LIUMANG_QIZHI的博客 236

缓存该删还是该改,LLM 服务里的双写问题

给答案加缓存之后,命中率上去了,账单下来了。然后开始出现一类很难查的问题,同一个问题,五分钟后问一次得到新答案,再问一次又回到旧答案。用户以为系统在抽风。这类问题的根源在双写。数据变了,数据库和缓存都要动,两个地方不是原子的,中间那段窗口就会出不一致。而缓存这种不一致一旦形成,可能一直存在,直到过期。

m0_58155849的博客 186

输送线节拍与缓存设计:线体平衡计算、积放系数与上下游能力匹配方法

输送系统的能力由瓶颈段决定,设计目标是让各段节拍匹配并留出可控缓存。三个核心计算:①段能力 C = 3600·v/(s + l)(件/h,v 线速度 m/s,s 货物间距 m,l 货物长度 m);②上下游匹配要求 C下游 ≥ 1.1·C上游;③缓存容量 B ≥ (Q峰 - C下游)·t,用于吸收短时高峰。缺了缓存,短时波动会直接转化为上游停线与货物顶推。

NaiLiShuXie的博客 226

WooCommerce 运费不显示或结账运费为 0:先核配送区域与运费类,再查缓存与主题/插件覆盖

—购物车能加购、结账表单也能填,就是算不出该有的运费——这和今日写过的 Cloudflare Flexible SSL /、后台极慢 Heartbeat / 修订 / autoload、

20年技术经验|专注小程序+外贸独立站|已服务500家企业,分享创业中有趣的产品和技术经验。 255
上一篇: JAVA泛型中"? T K V E"的意思
jalorchen_8378
博客等级 码龄15年 2粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值