一级缓存
SqlSession级别【SQLSessionTemplate和SQLSessionDaoSupport每次都获取新的SQLSession】,默认打开状态,无法关闭(除非自定义插件控制)。
示例:
1 |
|
二级缓存
Application级别,默认关闭状态。通过如下步骤开启二级缓存:
1. MyBatis支持二级缓存的总开关:全局配置变量参数cacheEnabled=true
,cacheEnabled
的默认值是true。
2. 该select语句所在的Mapper,配置了<cache>
或<cached-ref>
节点,并且有效。
3. 该select语句的参数 useCache=true
,useCache
的默认值是true。
示例:
CityMapper.xml
1 |
|
Java:
1 |
|
日志:
1 |
|
insert/update/delete等有一个属性flushCache
,默认值是true
<cache/>
<!ELEMENT cache (property*)>
<!ATTLIST cache
type CDATA #IMPLIED
eviction CDATA #IMPLIED
flushInterval CDATA #IMPLIED
size CDATA #IMPLIED
readOnly CDATA #IMPLIED
blocking CDATA #IMPLIED
>
<cache-ref/>
<!ELEMENT cache-ref EMPTY>
<!ATTLIST cache-ref
namespace CDATA #REQUIRED
>