千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > MyBatis的一级缓存什么意思

MyBatis的一级缓存什么意思

来源:千锋教育
发布人:xqq
时间: 2023-11-30 21:37:19 1701351439

一级缓存的介绍

一级缓存的范围是sqlsession级别,同一个sqlsession执行同一个sql查询(相同的sql和参数),第一次会去查询数据库并写到缓存中,第二次从一级缓存中取。

一级缓存是基于PerpetualCache的HashMap本地缓存,默认开启一级缓存。

什么时候清除一级缓存

如果中间的sqlSession去执行提交操作(执行插入、更新、删除),会清除SqlSession中的一级缓存,这样做的目的是让缓存存储最新的信息,避免脏读。

如果执行commit、close、add、delete、update等操作,当前的一级缓存就会被清空;当对SqlSession执行更新操作(更新、删除、插入)后再执行commit,不仅自身的一级缓存会被清空(执行更新操作的效果),而且二级缓存也会被清空(执行commit()的效果)。

一级缓存没有过期时间,只有一个生命周期

当MyBatis打开一个数据库会话时,它会创建一个新的SqlSession对象,它有一个Executor对象,Executor对象持有一个PerpetualCache对象,见下面的代码。当会话结束时,SqlSession对象及其内部的Executor对象和PerpetualCache对象也被一起释放。

tags: IT培训
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT