基本知识:
分类:
-
内置二级缓存(其主要任务是映射)
-
外置第三方产品
内置二级缓存:
开启方法:
-
在映射文件中添加<cache/>标签
-
操作的实体类实现serializabel接口
底层工作原理:二级缓存底层也是map,key(hashCode+StatementId+
增删改对二级缓存的影响:会刷新二级缓存,但和一级不同的是将value置为null,并未删除整个Entry对象,即key仍旧保留
关闭一级缓存对二级缓存的影响:在增删改的statement中添加flushCache="false"
二级缓存的配置:
-
size:内置二级缓存可以存放多少个查询结果,默认1024
-
eviction:逐出策略
-
flushInterval:刷新二级缓存的时间间隔
使用原则:
-
不要出现多个namespace操作一张表的情况
-
对关联关系不要出现增删改操作
-
当查询操作多于增删改操作时就可以使用二级缓存
EHCache二级缓存:
开启方式:
下载并导入jar包(mybatis-ehcache-1.0.3.jar和ehcache-core-2.6.8.jar)
在映射文件中添加<cache type="org.mybatis.caches.ehcache.EhcacheCache"></cache>
关闭方式:
-
局部性关闭:在<select>中添加useCache="false"
-
全局性关闭:在主配置文件中添加 <setting name="cacheEnabled" value="false"/>
配置:
步骤在jar包里找到ehcache-failsafe.xml,并更名为ehcache.xml,导入src下的包中即可。
方法一:直接修改:
方法二:在映射文件中配置:(但只是基于该namespace)【若该设置与ehcache.xml冲突会以该设置为准】