mybatis的缓存机制

一级缓存:

  • sqlSession级别,默认开启。存储的数据结构就是一个map,key就是包含由statementId、params、boundSql、rowBounds组成的,value就是查出的对象。也就是说,同一个mapper、同一个方法相同的sql及参数。
  • 注意:在spring或springboot整合的mybatis中,每次执行一个sql都会创建一个sqlSession,所以一级缓存失效。但可以加上注解@Transactional,在事务范围内共享一个sqlSession

二级缓存:

  • namespace级别,不默认开启。多个会话共享一个mapper,也就是不同mapper下的操作互不影响。
  • 注意:在做关联查询时会出现脏数据问题。例如,一个mapper中关联查询其他表,那么当其他表发生改变时,不会清空这个mapper的缓存。
相关推荐
闲人编程2 小时前
中间件开发与生命周期管理
缓存·中间件·生命周期·日志·扩展·codecapsule
期待のcode2 小时前
springboot热部署
java·spring boot·后端
Somehow0072 小时前
Spring Boot 集成 ElasticSearch 的简单示例
spring boot·设计
vx_bisheyuange3 小时前
基于SpringBoot的老年一站式服务平台
java·spring boot·后端·毕业设计
计算机毕设VX:Fegn08953 小时前
计算机毕业设计|基于Java + vue水果商城系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·课程设计
老华带你飞5 小时前
校务管理|基于springboot 校务管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring
JosieBook5 小时前
【部署】Spring Boot + Vue框架项目生产环境部署完整方案
vue.js·spring boot·后端
油丶酸萝卜别吃5 小时前
springboot项目中与接口文档有关的注解
java·spring boot·后端
小码哥0685 小时前
家政服务管理-家政服务管理平台-家政服务管理平台源码-家政服务管理平台java代码-基于springboot的家政服务管理平台
java·开发语言·spring boot·家政服务·家政服务平台·家政服务系统·家政服务管理平台源码
Java爱好狂.5 小时前
复杂知识简单学!Springboot加载配置文件源码分析
java·spring boot·后端·spring·java面试·后端开发·java程序员