Hibernate框架应用之缓存策略

本文介绍了Hibernate框架的强大功能及其缓存技术优势。通过配置ehcache.xml文件,详细展示了如何设置缓存策略,包括缓存对象数量、过期时间等参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     Hibernate框架是现在主流的数据持久层框架,其强大的功能是不言而喻的,是很多其他类似框架所不能比拟的。我之前也研究过mybatis框架,并且使用了它开发过个一个项目,他主要的优势是他的灵活性,只需注重sql语句的编写,具体实现交给框架执行。学他上手快,但不是最好的选择。性能是比不上Hibernate的,Hibernate具有数据库无关性,不需要很强的sql语句编写能力,还有其强大的缓存技术,学习的话这是首选。言归正传,我们看下它的缓存策略的配置。

   必须引入相应的jar包--(ehcache-core-2.4.3.jar、hibernate-ehcache-4.2.2.Final.jar)

      在配置sessionFactroy的时候配置缓存策略参数:

         

<property name="hibernateProperties">	    
		    <props>
		        <!-- 指定数据库方言 -->
		        <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><!--指定数据库方言-->
		        <prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</prop><!--provider缓存策略-->
		        <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
		        <prop key="hibernate.show_sql">true</prop>
		        <prop key="format_sql">true</prop>
		        </props>
		</property>
    仅仅这样配置是不行的 它会报找不到ehcache.xml文件 因为配置了缓存策略后但启动服务加载bean的是会默认加载这个配置文件

 看看ehcache.xml的配置吧 该文件是在classpath下:

   

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">  
   <!--  注:  
        maxElementsInMemory为缓存对象的最大数目, eternal设置是否永远不过期 (这个最好不要设置成true 那样可能会造成内存溢出) 
        timeToIdleSeconds对象处于空闲状态的最多秒数 timeToLiveSeconds对象处于缓存状态的最多秒数 (s) 
    -->  
    <diskStore path="java.io.tmpdir" />  
      
<defaultCache maxElementsInMemory="10000" eternal="false"  
        timeToIdleSeconds="300" timeToLiveSeconds="600" overflowToDisk="true" />  
      
<cache name="org.hibernate.cache.StandardQueryCache"  
        maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="300"  
        timeToLiveSeconds="4200" overflowToDisk="true" />  
  
<cache name="org.hibernate.cache.UpdateTimestampsCache"  
        maxElementsInMemory="5000" eternal="true" timeToIdleSeconds="0"  
        timeToLiveSeconds="0" overflowToDisk="false" />  
  </ehcache>
 缓存技术要慎用 更多缓存配置参数和使用请再看相关文档。

   

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值