mybatis什么时候不走 缓存??

MyBatis什么时候不走 缓存??

一级缓存

sqlSession不是同一个对象,肯定就不走缓存了,

ThreadLocal只能确保同一个会话,

当new sqlSessionFactoryBuild新的会话,新的,那么会有2个不同的sqlSession,那么缓存失效

查询条件不一样,肯定也不走缓存

这个才是根源所在!!

什么时候一级缓存失效?

第一次DQL和第二次DQL之间你做了以下两件事中的任意一件,都会让一级缓存清空:

1.执行了sqlSession的clearCache方法,这是手动清空缓存。

2.执行了INSERT DELETE UPDATE语句。

二级缓存的范围是

qlSessionFactory。

使用二级缓存需要具备以下几个条件:

1.<setting name="cacheEnabled"value="true">全局性地开启或关闭所有映射器配置文件中已配置的任何缓存。默认就是true,无需设置

2.在需要使用二级缓存的SqlMapper.xml文件中添加配置:<cache/>

3.使用二级缓存的实体类对象必须是可序列化的,也就是必须实现java.io.Serializable接口

4.SqlSession对象关闭或提交之后,一级缓存中的数据才会被写入到二级缓存当中。此时二级缓存才可用。

我也不懂。。。

相关推荐
Bingo_BIG1 天前
Java Spring框架:单表的查询、新增、修改、删除、导入、导出
java·spring·前后端
全栈弄潮儿²⁰²⁴1 天前
AI Agent 开发实战(30):限流、缓存与成本控制
人工智能·gpt·缓存·agent·限流·agi·成本控制
paopaokaka_luck1 天前
智慧社区综合服务小程序(人脸识别、AI问答、Echarts图形化分析)
前端·javascript·spring boot·spring·数据分析·echarts
牧瀬クリスだ1 天前
YAML配置详解:SpringBoot实战指南
java·spring·yml
需要8261 天前
JVM 内存区域与对象创建:一次 GC 从哪来
java·jvm·spring boot·spring·servlet·tomcat
paopaokaka_luck1 天前
考研政治刷题小程序(AI推荐题目、ECharts数据分析、章节练习与专项训练、模拟考试、错题本与收藏夹、学习打卡与目标管理、题库和组卷维护)
前端·javascript·spring boot·spring·数据分析·echarts
步行cgn1 天前
Spring 基于 XML 的自动装配:byType 详解
java·后端·spring
边境悍匪1 天前
蜗牛学苑 Java 智能体学习 Day46|贯穿项目 2 思维导图复盘
java·开发语言·vue.js·学习·spring
步行cgn2 天前
Spring c 命名空间注入详解
java·后端·spring
Together_CZ2 天前
DeepSeek-V4.1-Flash:Pushing the Limits of KV Cache Compression——推动 KV 缓存压缩的极限
缓存·llm·compression·kv cache·deepseek·v4.1-flash·推动 kv 缓存压缩的极限