什么是Mybatis的一二级缓存?

一级缓存:

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

二级缓存:

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

注意:

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

相关推荐
合作小小程序员小小店11 小时前
网页开发,在线%新版本旅游管理%系统,基于eclipse,html,css,jquery,servlet,jsp,mysql数据库
java·数据库·eclipse·html·intellij-idea·旅游·jsp
组合缺一11 小时前
Spring Boot 国产化替代方案。Solon v3.7.2, v3.6.5, v3.5.9 发布(支持 LTS)
java·后端·spring·ai·web·solon·mcp
s***117012 小时前
常见的 Spring 项目目录结构
java·后端·spring
O***P57112 小时前
记录 idea 启动 tomcat 控制台输出乱码问题解决
java·tomcat·intellij-idea
7***477112 小时前
在2023idea中如何创建SpringBoot
java·spring boot·后端
2***c43512 小时前
解决 IntelliJ IDEA 中 Tomcat 日志乱码问题的详细指南
java·tomcat·intellij-idea
j***788812 小时前
【Spring】IDEA中创建Spring项目
java·spring·intellij-idea
豆沙沙包?12 小时前
2025年--Lc293-784. 字母大小写全排列(回溯)--java版
java·开发语言
q***996312 小时前
【MyBatisPlus】MyBatisPlus介绍与使用
java