mybatis的缓存机制

一级缓存:

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

二级缓存:

  • namespace级别,不默认开启。多个会话共享一个mapper,也就是不同mapper下的操作互不影响。
  • 注意:在做关联查询时会出现脏数据问题。例如,一个mapper中关联查询其他表,那么当其他表发生改变时,不会清空这个mapper的缓存。
相关推荐
计算机程序设计小李同学12 小时前
基于SpringBoot的个性化穿搭推荐及交流平台
java·spring boot·后端
C_心欲无痕12 小时前
浏览器缓存: IndexDB
前端·数据库·缓存·oracle
aloha_78913 小时前
agent智能体学习(尚硅谷,小智医疗)
人工智能·spring boot·python·学习·java-ee
sanggou14 小时前
【实战总结】Spring Boot 后端接口防抖详解与实现方案(含注解 + Redis)
spring boot·后端
虫小宝14 小时前
优惠券省钱app高并发秒杀系统:基于Redis与消息队列的架构设计
数据库·redis·缓存
少许极端15 小时前
Redis入门指南(五):从零到分布式缓存-其他类型及Java客户端操作redis
java·redis·分布式·缓存
C_心欲无痕16 小时前
网络相关 - 强缓存与协商缓存讲解
前端·网络·网络协议·缓存
三两肉16 小时前
HTTP 缓存详解
网络协议·http·缓存
此生只爱蛋17 小时前
【Redis】RESP协议和库的安装
数据库·redis·缓存
洛枫偃月18 小时前
SpringBoot3.5.x集成Nacos 2.x全流程详解
java·spring boot·后端