MyBatis | Mybatis整合第三方缓存包(EHcache)

目录

 

一、导入jar包

1.下载

2.导包

二、编写chcache.xml文件

三、在SQL映射文件中配置标签

四、MyBatis的缓存运行示意图(与第三方缓存包结合)


一、导入jar包

1.下载

需要下载第三方缓存包及其与MyBatis整合的适配包。可以点此下载所需jar包

2.导包

 
13424350-b2e68660a5bbb8b0.png
图1:导入的包

二、编写ehcache.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="../config/ehcache.xsd">
    <!--
    java.io.tmpdir - Default temp file path 默认的 temp 文件目录
    maxElementsInMemory:内存中最大缓存对象数.
    maxElementsOnDisk:磁盘中最大缓存对象数,若是0表示无穷大.
    eternal:Element是否永久有效,一但设置了,timeout将不起作用.
    overflowToDisk:配置此属性,当内存中Element数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中
    timeToIdleSeconds:设置Element在失效前的允许闲置时间。仅当element不是永久有效时使用,可选属性,默认值是0, 也就是可闲置时间无穷大
    timeToLiveSeconds:设置Element在失效前允许存活时间。最大时间介于创建时间和失效时间之间。仅当element不是永久有效时使用,
    默认是0.也就是element存活时间无穷大.
    diskPersistent:是否缓存虚拟机重启期数据。(这个虚拟机是指什么虚拟机一直没看明白是什么,有高人还希望能指点一二)
    diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒。
    diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区.
    -->
    <diskStore path="E:\ehcache" />
    <defaultCache maxElementsInMemory="10000" eternal="false"
                  timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true"
                  maxElementsOnDisk="10000000" diskPersistent="false"
                  diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU" />
</ehcache>

三、在SQL映射文件中配置<cache>标签

在映射文件中加入:

<cache type="org.mybatis.caches.ehcache.EhcacheCache"/>

如果在映射文件中有定义一个之后,还可以在另一个映射文件中引用其缓存:

<!-- 引用缓存,namespace指定和哪个名称空间下的缓存一样-->
<cache-ref namespace="com.cerr.mybatis.dao.EmployeeMapper"/>

然后就可以使用和之前使用mybatis的二级缓存一样使用ehcache了。


四、MyBatis的缓存运行示意图(与第三方缓存包结合)

 
13424350-f236715fec965002.png
图2:MyBatis与第三方缓存包结合后的缓存运行示意图

猜你喜欢

转载自blog.csdn.net/qq_14810195/article/details/103523345