table of Contents
Two, write the chcache.xml file
Three, configure the label in the SQL mapping file
4. Schematic diagram of MyBatis's cache operation (combined with a third-party cache package)
One, import the jar package
1. Download
You need to download the third-party cache package and the adaptation package integrated with MyBatis. You can click here to download the required jar package
2. Guide package
Figure 1: Imported package
Two, write ehcache.xml
documents
<?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>
Three, configure the <cache>
label in the SQL mapping file
Add in the mapping file:
<cache type="org.mybatis.caches.ehcache.EhcacheCache"/>
If you define one in the mapping file, you can also reference its cache in another mapping file:
<!-- 引用缓存,namespace指定和哪个名称空间下的缓存一样-->
<cache-ref namespace="com.cerr.mybatis.dao.EmployeeMapper"/>
Then you can use ehcache as the second level cache of mybatis before.
4. Schematic diagram of MyBatis's cache operation (combined with a third-party cache package)
Figure 2: Schematic diagram of cache operation after combining MyBatis with a third-party cache package