Mybatis和Hibernate配置二级缓存的方法

Mybatis:

1、开启二级缓存,在userMapper.xml文件中添加如下配置

<mapper namespace="me.gacl.mapping.userMapper">
<!-- 开启二级缓存 -->
<cache/>

二级缓存补充说明

  1. 映射语句文件中的所有select语句将会被缓存。

  2. 映射语句文件中的所有insert,update和delete语句会刷新缓存。

  3. 缓存会使用Least Recently Used(LRU,最近最少使用的)算法来收回。

  4. 缓存会根据指定的时间间隔来刷新。

  5. 缓存会存储1024个对象

cache标签常用属性:

<cache 
eviction="FIFO"  <!--回收策略为先进先出-->
flushInterval="60000" <!--自动刷新时间60s-->
size="512" <!--最多缓存512个引用对象-->
readOnly="true"/> <!--只读-->
Hibernate:

如何在程序里使用二级缓存: 
首先在hibernate.cfg.xml开启二级缓存 

Xml代码   收藏代码
  1. <hibernate-configuration>  
  2.    <session-factory>  
  3.   
  4.       ......  
  5.   
  6.       <!-- 开启二级缓存 -->  
  7.       <property name="hibernate.cache.use_second_level_cache">true</property>  
  8.       <!-- 启动"查询缓存"如果想缓存使用findall()、list()、Iterator()、createCriteria()、createQuery()等方法获得的数据结果集,必须配置此项-->  
  9.       <property name="hibernate.cache.use_query_cache">true</property>  
  10.       <!-- 设置二级缓存插件EHCache的Provider类-->  
  11.       <!-- <property name="hibernate.cache.provider_class">  
  12.          org.hibernate.cache.EhCacheProvider  
  13.       </property> -->  
  14.       <!-- 二级缓存区域名的前缀 -->  
  15.       <!--<property name="hibernate.cache.region_prefix">test</property>-->  
  16.       <!-- 高速缓存提供程序 -->  
  17.       <property name="hibernate.cache.region.factory_class">  
  18.          net.sf.ehcache.hibernate.EhCacheRegionFactory  
  19.       </property>  
  20.       <!-- Hibernate4以后都封装到org.hibernate.cache.ehcache.EhCacheRegionFactory -->  
  21.       <!-- 指定缓存配置文件位置 -->  
  22.       <!-- <property name="hibernate.cache.provider_configuration_file_resource_path">  
  23.          ehcache.xml  
  24.       </property> -->  
  25.       <!-- 强制Hibernate以更人性化的格式将数据存入二级缓存 -->  
  26.       <property name="hibernate.cache.use_structured_entries">true</property>  
  27.   
  28.       <!-- Hibernate将收集有助于性能调节的统计数据 -->  
  29.       <property name="hibernate.generate_statistics">true</property>  
  30.   
  31.       ......  
  32.   
  33.    </session-factory>  
  34. </hibernate-configuration>
在每个实体的hbm文件中配置cache元素,usage可以是read-only或者是read-write等4种。 
Xml代码   收藏代码
  1. <?xml version="1.0" encoding='UTF-8'?>  
  2. <!DOCTYPE hibernate-mapping PUBLIC  
  3.                             "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  4.                             "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd>  
  5. <hibernate-mapping>      
  6.    <class>  
  7.        <!-- 设置该持久化类的二级缓存并发访问策略 read-only read-write nonstrict-read-write transactional-->  
  8.        <class name="cn.java.test.model.User" table="TBL_USER">  
  9.               <cache usage="read-write"/>  
  10.        ......    
  11.    </class>  
  12. </hibernate-mapping> 
Collection集合缓存 
Java代码   收藏代码
  1. <hibernate-mapping>  
  2.     <class name="cn.java.test.model.UserModel" table="TBL_USER">  
  3.         <cache usage="read-write" />  
  4.         <set name="farms" cascade="all" inverse="true" lazy="false">  
  5.             <cache usage="read-write"/>  
  6.             <key column="fk_user_id"/>  
  7.             <one-to-many class="cn.java.test.model.FarmModel"/>  
  8.         </set>  
  9.     </class>  
  10. </hibernate-mapping> 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值