什么是Mybatis的一二级缓存?

一级缓存:

也称为 SqlSession 缓存,它存在于 SqlSession 中,只对一个会话内的数据进行缓存。如果在一个会话内多次执行同一条 SQL 查询语句,那么 MyBatis 只会在第一次查询数据库时实际执行 SQL 语句,其余查询则直接从缓存中获取数据。当会话关闭时,缓存就会被清除掉。

二级缓存:

也称为全局缓存,它存在于 SqlSessionFactory 中,多个会话之间可以共享缓存数据。当多个会话访问相同的 SQL 查询语句时,只要有一个会话查询到了数据并把结果放入二级缓存中,其他的会话就可以直接从缓存中获取数据。如果缓存中的数据过期或者数据发生变化时,MyBatis 会自动刷新缓存。

注意:

注意:在实际开发中,建议慎用缓存,特别是不要在有大量并发写操作的情况下使用缓存,以免出现数据不一致的问题。另外,需要注意的是,缓存策略是针对单表操作才有意义,多表操作通常不会考虑缓存。

相关推荐
technology_x3 分钟前
液冷超充站设备厂家哪家好?2026年功率与散热对比
java·开发语言
LayZhangStrive17 分钟前
Agent开发 - MCP Client使用MCP Server的几种方式(Spring AI)
java·spring ai·mcp
仓三30 分钟前
从 Prompt Engineering 到 Context Engineering:2026 年 Agent 性能提升的隐藏杠杆
java·prompt·context
许彰午39 分钟前
07-SqlBuilder六法
java·开发语言·低代码·架构
孙69034244 分钟前
Spring 注入多例 Bean
java·spring
Jul1en_1 小时前
【Java 脚手架】封装通用工具类-3
java·开发语言·redis·缓存·ai·bootstrap·rabbitmq
边境悍匪1 小时前
springboot常用注解
java·spring boot·学习
captain3762 小时前
文件与IO(2)
java·开发语言·windows·java-ee
杨运交2 小时前
[065][缓存模块]Hibernate二级缓存自定义实现:基于Spring Cache的多级缓存适配器
spring·缓存·hibernate
mqiqe2 小时前
AgentScope Java 2.0 集成 Chat Completions Web:一行依赖让你的 Agent 变身 OpenAI 兼容服务
java·开发语言·前端