Mybatis 中缓存分为一级缓存,二级缓存。
一级缓存
一级缓存是 SqlSession 级别的缓存,只要 SqlSession 没有 flush 或 close,它就存在
默认开启并使用
当调用 SqlSession 的修改,添加,删除,commit(),close()等方法时,就会清空一级缓存,这样
做的目的为了让缓存中存储的是最新的信息
sqlSession.clearCache();//此方法也可以清空缓存
二级缓存
二级缓存是 mapper 映射级别的缓存
默认开启但不使用
二级缓存的开启与关闭
1、在SqlMapConfig.xml中开启
<settings>
<!-- 开启二级缓存的支持 -->
<setting name="cacheEnabled" value="true"/>
</settings>
因为 cacheEnabled 的取值默认就为 true,所以这一步可以省略不配置。为 true 代表开启二级缓存;为
false 代表不开启二级缓存。
2、Mapper 映射文件
<mapper namespace="com.itheima.dao.IUserDao">
<!-- 开启二级缓存的支持 -->
<cache></cache>
</mapper>
3、statement 上面的 useCache 属性
<!-- 根据 id 查询 -->
<select id="findById" resultType="user" parameterType="int" useCache="true">
select * from user where id = #{uid}
</select>
标签:缓存,一级,SqlSession,默认,开启,二级缓存,mybatis
From: https://www.cnblogs.com/yanshiheng/p/16995937.html