mybatis的缓存机制

一级缓存:

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

二级缓存:

  • namespace级别,不默认开启。多个会话共享一个mapper,也就是不同mapper下的操作互不影响。
  • 注意:在做关联查询时会出现脏数据问题。例如,一个mapper中关联查询其他表,那么当其他表发生改变时,不会清空这个mapper的缓存。
相关推荐
代码在改了2 小时前
springboot厨房达人美食分享平台(源码+文档+调试+答疑)
java·spring boot
wclass-zhengge2 小时前
Redis篇(最佳实践)(持续更新迭代)
redis·缓存·bootstrap
Dylanioucn2 小时前
【分布式微服务云原生】探索Redis:数据结构的艺术与科学
数据结构·redis·分布式·缓存·中间件
kylinxjd2 小时前
spring boot发送邮件
java·spring boot·后端·发送email邮件
OLDERHARD2 小时前
Java - MyBatis(上)
java·oracle·mybatis
杨荧2 小时前
【JAVA开源】基于Vue和SpringBoot的旅游管理系统
java·vue.js·spring boot·spring cloud·开源·旅游
2401_857439695 小时前
Spring Boot新闻推荐系统:用户体验优化
spring boot·后端·ux
进击的女IT6 小时前
SpringBoot上传图片实现本地存储以及实现直接上传阿里云OSS
java·spring boot·后端
杨半仙儿还未成仙儿7 小时前
Spring框架:Spring Core、Spring AOP、Spring MVC、Spring Boot、Spring Cloud等组件的基本原理及使用
spring boot·spring·mvc
一 乐7 小时前
学籍管理平台|在线学籍管理平台系统|基于Springboot+VUE的在线学籍管理平台系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习