缓存顺序
- 先看二级缓存有没有
- 再看一级缓存有没有
- 最后走数据库
一级缓存
创建seqsession就是创建一级缓存,关闭seqsession就是关闭一级缓存
二级缓存操作
-
开启全局缓存
<setting name="cacheEnabled" value="true"/>
-
在要使用二级缓存的Mapper中开启
<!--在当前Mapper.xml中使用二级缓存--> <cache/>
也可以自定义参数
<cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true"/>
-
测试
- 问题:需要将实体类序列化(implements Serializable)
自定义缓存-ehcache
Ehcache是一种广泛使用的开源Java分布式缓存,主要面向通用缓存
- 先导入相关包(mybatis-ehcache)
<!-- https://mvnrepository.com/artifact/org.ehcache/ehcache --> <dependency> <groupId>org.ehcache</groupId> <artifactId>ehcache</artifactId> <version>3.8.1</version> </dependency>
3. 在mapper中指定使用我们的ehcache缓存
```xml
<cache type=""/>
- 配置新的xml(例如命名:ehcache.xml)