mybatis缓存

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>
posted @   max_yan  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示