你的位置:首页 > ASP.net教程

[ASP.net教程]Mybatis入门实例(二)——添加ehcache缓存支持


为了提高MyBatis的性能,有时候我们需要加入缓存支持,目前用的比较多的缓存莫过于ehcache缓存了,ehcache性能强大,而且位各种应用都提供了解决方案,在此我们主要是做查询缓存,提高查询的效率.

 

在Mybatis的官网上把集成ehcache的文档下载下来看了看,说的太简单了,对于新手很难理解,而且里面说的也不是很清楚,经过一番折腾,终于将ehcache加入了.

 

官网上提供了一个MyBatis-ehcache.jar的包用于整合ehcache缓存,文档中还说明需要一个ehcache-core.jar的包,除了这两个包之外有几个包也是必须的,官方并没有说明,以下是需要加入的所有和ehcache相关的包:

1.ehcache-core-2.4.4.jar

2.mybatis-ehcache-1.0.0.jar

3.slf4j-api-1.6.1.jar

4.slf4j-log4j12-1.6.2.jar

 

除此之外还有mybatis的jar包,log4j,mysql驱动,这些大家应该都知道.

 

将上述包加入项目之后,新建一个文件名,该文件名必须为ehcache.

 

 收藏代码

  1. <?version="1.0" encoding="UTF-8"?>  
  2. <ehcache "http://www.w3.org/2001/
  3.     xsi:noNamespaceSchemaLocation="../bin/ehcache.xsd">  
  4.     <!--  
  5.     name:Cache的唯一标识  
  6.     maxElementsInMemory:内存中最大缓存对象数  
  7.     maxElementsOnDisk:磁盘中最大缓存对象数,若是0表示无穷大  
  8.     eternal:Element是否永久有效,一但设置了,timeout将不起作用  
  9.     overflowToDisk:配置此属性,当内存中Element数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中  
  10.     timeToIdleSeconds:设置Element在失效前的允许闲置时间。仅当element不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大  
  11.     timeToLiveSeconds:设置Element在失效前允许存活时间。最大时间介于创建时间和失效时间之间。仅当element不是永久有效时使用,默认是0.,也就是element存活时间无穷大   
  12.     diskPersistent:是否缓存虚拟机重启期数据  
  13.     diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒  
  14.     diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区  
  15.      memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用)   
  16.     -->  
  17.     <defaultCache overflowToDisk="true" eternal="false"/>  
  18.     <diskStore path="D:/cache" />  
  19.     <!--  
  20.         <cache name="zzugxy" overflowToDisk="true" eternal="false"  
  21.         timeToIdleSeconds="300" timeToLiveSeconds="600" maxElementsInMemory="1000"  
  22.         maxElementsOnDisk="10" diskPersistent="true" diskExpiryThreadIntervalSeconds="300"  
  23.         diskSpoolBufferSizeMB="100" memoryStoreEvictionPolicy="LRU" />  
  24.     -->  
  25. </ehcache>  

<?

 

该文件是ehcache的配置文件,上面的注释已经说得很清楚了,这里我用的是默认的配置

至此ehcache已经配置好了,然后只需要在你想要缓存的mapper配置文件里面加入以下内容,该查询语句得到的结果将会被缓存

 

 收藏代码

  1. <?version="1.0" encoding="UTF-8" ?>   
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
  3. <mapper namespace="com.qiuqiu.dao.PersonDao">  
  4.     <!-- 以下两个<cache>标签二选一,第一个可以输出日志,第二个不输出日志 -->  
  5.     <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>  
  6.     <!-- <cache type="org.mybatis.caches.ehcache.EhcacheCache"/> -->  
  7.       
  8.     <select id="selectUserById" parameterType="int" resultType="org.qiuqiu.vo.Person">  
  9.         select * from person where id=#{id}   
  10.     </select>  
  11. </mapper>  

<?

 

这样就对这个mapper里面的各种结果进行了缓存.程序中不需要修改任何地方

java企业级通用权限安全框架源码 SpringMVC mybatis or hibernate+ehcache shiro druid bootstrap HTML5

【java框架源码下载】




海南旅游报价价格海南旅游景点推荐海南旅游团报价海南旅游团购优惠海南旅游线路报价都峤山风景区地址?广西容县都峤山怎么去? 7月去桂林旅游好玩吗? 珠穆朗玛峰海拔高度有多少米? 都峤山风景区电话?广西容县都峤山团购多少? 2015马降龙碉楼三八妇女节门票免费吗?开平马降龙碉楼3.8女士优惠价格? 2015赤坎古镇三八妇女节女士免费吗?开平赤坎影视城3.8女士门票优惠活动? 2015赤坎古镇三八妇女节门票优惠活动?开平赤坎影视城3.8女士免费吗? 福州桃花朵朵开 依傍枝头等君来 晒太阳吹海风 玩遍海南自驾全攻略 哇塞,太美了!沿海游客点赞达古冰山彩林 细数重庆十大最美婚纱摄影地 盘点陕西六大逗比景点 “米奇头饰” 去泰国旅游要签证吗?要怎么办? 马尔代夫什么时候去最好呢? 普吉岛在哪里?属于哪个国家? 2015年中国护照可以免签哪些国家? IDT5V2310PGGI Datasheet IDT5V2310PGGI Datasheet IDT71V3558S133PFG Datasheet IDT71V3558S133PFG Datasheet IDT72V3633L10PF8 Datasheet IDT72V3633L10PF8 Datasheet 大兴安岭去港澳三天两晚游 大兴安岭去港澳三天两晚游 大兴安岭去港澳三天两晚游 四平跟团香港四天三晚游 四平跟团香港四天三晚游 四平跟团香港四天三晚游 佳木斯跟团港澳五天四晚 佳木斯跟团港澳五天四晚 佳木斯跟团港澳五天四晚