mybatis的缓存机制

一级缓存:

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

二级缓存:

  • namespace级别,不默认开启。多个会话共享一个mapper,也就是不同mapper下的操作互不影响。
  • 注意:在做关联查询时会出现脏数据问题。例如,一个mapper中关联查询其他表,那么当其他表发生改变时,不会清空这个mapper的缓存。
相关推荐
正儿八经的少年37 分钟前
redis 的大 key 和热 key 详解
数据库·redis·缓存
dkbnull1 小时前
Spring Boot请求处理组件对比详解
java·spring boot
不能只会打代码1 小时前
Day 011 — Spring 全家桶深度拆解
spring boot·mybatis·spring aop·spring mvc·spring ioc
X-⃢_⃢-X1 小时前
十、Redis之布隆过滤器
数据库·redis·缓存
吴声子夜歌2 小时前
MongoDB 4.x——SpringBoot框架整合
数据库·spring boot·mongodb
snow@li2 小时前
Spring Boot:项目服务器完整部署教程(零基础可直接实操)
服务器·spring boot·后端
Database_Cool_3 小时前
阿里云 Tair(企业级内存数据库)vs 腾讯云 Redis 云缓存深度对比:性能/数据结构/成本全维度 Benchmark
数据库·阿里云·缓存
流星白龙3 小时前
【Redis】1.Redis特性
数据库·redis·缓存
chexus3 小时前
21. 深入 Nginx HTTP 缓存源码:CDN功能
nginx·http·缓存
万亿少女的梦1683 小时前
基于Spring Boot、Java与MySQL的网络订餐系统设计与实现
java·spring boot·mysql·系统设计·网络订餐