Mybatis的二级缓存刷新细节

开始使用mybatis缓存时,会主动尝试mybatis的二级缓存,二级缓存是基于SqlSessionFactory的缓存,所以只要不刷新缓存,缓存数据不会实时变化,这一缓存机制极大的提高了查询操作的效率,但是在增删改时要注意刷新缓存,不然修改结果无法实时显示出来,在开发中遇到过,就记录下来了。

在mapper的同一个namespace中,如果有其它insert、update、delete操作数据后需要刷新缓存,如果不执行刷新缓存会出现脏读。

设置statement配置中的flushCache="true" 属性,默认情况下为true即刷新缓存,如果改成false则不会刷新。使用缓存时如果手动修改数据库表中的查询数据会出现脏读。

如下:

<insert id="insertUser" parameterType="cn.itcast.mybatis.po.User"  flushCache="true">

总结:一般下执行完commit操作都需要刷新缓存,flushCache=true表示刷新缓存,这样可以避免数据库脏读。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 6,396评论 0 4
  • 前言 主题是Mybatis一级和二级缓存的应用及源码分析。希望在本场chat结束后,能够帮助读者朋友明白以下三点。...
    余平的余_余平的平阅读 1,448评论 0 12
  • 1. 二级缓存的原理 前面介绍了,mybatis中的二级缓存是mapper级别的缓存,值得注意的是,不同的mapp...
    我相信你爱过gg阅读 753评论 0 4
  • MyBatis的配置和使用原理 MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。My...
    王帅199207阅读 1,008评论 0 4
  • 下课等过红绿灯,疾步去食堂看交流窗口前面的排队。不断穿过人潮拥挤的背影,留在耳根后一片熙攘低回。我的眼前有阳...
    新阁阅读 373评论 0 0

友情链接更多精彩内容