mybatis的缓存机制

一级缓存:

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

二级缓存:

  • namespace级别,不默认开启。多个会话共享一个mapper,也就是不同mapper下的操作互不影响。
  • 注意:在做关联查询时会出现脏数据问题。例如,一个mapper中关联查询其他表,那么当其他表发生改变时,不会清空这个mapper的缓存。
相关推荐
gaozhiyong08131 小时前
深度技术拆解:豆包2 Pro vs Gemini 3—国产工程派与海外原生派的巅峰对决
前端·spring boot·mysql
Flittly1 小时前
【SpringAIAlibaba新手村系列】(3)ChatModel 与 ChatClient 的深度对比
java·人工智能·spring boot·spring
ok_hahaha2 小时前
java从头开始-黑马点评-商户查询缓存
java·spring·缓存
青槿吖3 小时前
第二篇:Spring Boot进阶:整合异常处理、测试、多环境与日志,开发稳得一批!
java·spring boot·后端·spring·面试·sqlserver·状态模式
新缸中之脑3 小时前
Google TurboQuant 详解
数据库·redis·缓存
それども4 小时前
Mybatis xml 执行提示 NoSuchPropertyException
xml·mybatis
DJ斯特拉5 小时前
黑马点评技术汇总(五)缓存更新策略
缓存
qq_366086225 小时前
MyBatis 动态 SQL 高频性能优化方案
sql·性能优化·mybatis
polaris06305 小时前
springboot接入deepseek深度求索 java
java·spring boot·后端
weixin_425023005 小时前
【Spring Boot 2.7 整合 WebSocket 完整实战】鉴权拦截+在线用户管理+定向消息推送
spring boot·后端·websocket