Mybatis学习笔记(一)

本文深入解析MyBatis的一级缓存与二级缓存工作原理,探讨如何通过合理配置提高数据库操作效率,避免脏读现象。涵盖缓存开启、使用限制及刷新策略,适合对MyBatis感兴趣的开发者阅读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一级缓存:是sqlSession级别的缓存。在操作数据库时要构造sqlSession对象,在对象中用HashMap存储缓存数据。不同的sqlSession之间的缓存数据区域互不影响。原理:第一次查询时查找sql查询出的结果,即是否存在缓存,不存在就从数据库查找信息,存在就直接从缓存中读取。可以用commit清空缓存以避免脏读

二级缓存:是mapper级别的缓存,多个sqlSession操作同一个Mapper的sql语句,多个sqlSession可以共用二级缓存,二级缓存是跨sqlSession的,范围更大,多个sqlSession可以共享一个二级缓存区域,二级缓存按namespace划分,如果两个mapper的namespace相同,则具有相同的二级缓存区域

开启二级缓存:在核心配置文件加入

<setting name="cacheEnabled" value="true"/>

默认为true
useCache=false可以禁用当前select语句的二级缓存,即每次查询都会发出sql去查询,默认为true。

<select id="findOrderListResultMap" resultMap="oderUuserMap" useCache="false">

刷新缓存:

<insert id="insertUser" parameterType="po.User" flushCache="true">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值