mybatis中的缓存分为一级缓存(本地缓存)和二级缓存。
相同点:
1. 使用HashMap实现
2. 由PerpetualCache管理
不同点:
1. 作用域:一级缓存的作用域为sqlSession,当sqlSession调用flush或者close后,hashmap中的值会被清空。二级缓存的作用域为global,
2. 生效:一级缓存是肯定生效的,不管你是否配置它。二级缓存的生效必须经过三个步骤:(1)xml配置文件中,设置cacheEnabled为true.
<settings>
<setting name="cacheEnabled" value=true>
</setting>
</settings>
(2)mapper xml 映射文件中启用cache,
(3)设置select元素中useCache属性为true。