前言:
本文内容:MyBatis缓存原理、自定义缓存Ehcache
推荐免费MyBatis基础教程视频:【狂神说Java】Mybatis最新完整教程IDEA版通俗易懂_哔哩哔哩_bilibili
MyBatis笔记代码下载地址:
蓝奏云:下载地址 密码:joker
百度云:下载地址 提取码:x587
MyBatis缓存原理
MyBatis读取缓存的顺序:
-
先看二级缓存中有没有数据,有则返回数据
-
在看一级缓存中有没有数据,有则返回数据
-
若两个缓存中都没有数据,就去数据库查询
1 2 3 4 5 6 7 8 9 10
| 用户 | |/ 二级缓存 | |/ 一级缓存 | |/ 数据库
|
自定义缓存Ehcache
导入Ehcache
的jar包
pom.xml
1 2 3 4 5
| <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-ehcache</artifactId> <version>1.0.0</version> </dependency>
|
使用自定义缓存
你可以通过实现你自己的缓存,或为其他第三方缓存方案创建适配器,来完全覆盖缓存行为。
1
| <cache type="org.mybatis.caches.ehcache"/>
|
测试Ehcache
在resources
新建ehcache.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| <?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd" updateCheck="false">
<diskStore path="java.io.tmpdir/Tmp_EhCache"/>
<defaultCache eternal="false" maxElementsInMemory="10000" overflowToDisk="false" diskPersistent="false" timeToIdleSeconds="1800" timeToLiveSeconds="259200" memoryStoreEvictionPolicy="LRU"/> <cache name="cloud_user" eternal="false" maxElementsInMemory="5000" overflowToDisk="false" diskPersistent="false" timeToIdleSeconds="1800" timeToLiveSeconds="1800" memoryStoreEvictionPolicy="LRU"/> </ehcache>
|
总结导图 【JavaWeb】JavaWeb 从入门到实战 (16)