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对象关闭或提交之后,一级缓存中的数据才会被写入到二级缓存当中。此时二级缓存才可用。

我也不懂。。。

相关推荐
唐青枫4 天前
Java Spring WebFlux 实战指南:用 Mono、Flux 和 WebClient 写响应式接口
java·spring
小七-七牛开发者5 天前
TokenPilot:让 LLM Agent 长会话成本降 60%+ 的上下文管理
缓存·agent·token·context·上下文·推理成本
咖啡八杯5 天前
GoF设计模式——策略模式
java·后端·spring·设计模式
Flittly7 天前
【AgentScope Java新手村系列】(11)中断与恢复
java·spring boot·spring
dunky7 天前
Spring 的三级缓存与循环依赖
后端·spring
码云数智-园园12 天前
C++20 Modules 模块详解
java·开发语言·spring
咖啡八杯12 天前
GoF设计模式——享元模式
java·spring·设计模式·享元模式
Flittly12 天前
【AgentScope Java新手村系列】(10)实战-多Agent天气助手
java·spring boot·spring
李少兄12 天前
从原理到实战:Spring IoC/DI 核心知识体系与高频面试题全解
java·后端·spring