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

我也不懂。。。

相关推荐
BUG指挥官17 小时前
Sa-Token和Spring Security对比
java·后端·spring
geminigoth17 小时前
Spring AI Alibaba 入门开发一(备份)
java·人工智能·spring
xbgRS20 小时前
spring整合mybaits
java·spring·mybatis
ruleslol20 小时前
静态依赖注入 VS 动态依赖查询
spring
墨雨晨曦881 天前
Spring AI总结
java·人工智能·spring
用户3126874877201 天前
Spring Boot 异常处理到底怎么玩的?从 DispatcherServlet 到全局兜底的全链路拆解
spring
不才不才不不才1 天前
Spring 源码系列(17): HandlerMapping 与 HandlerAdapter 两大体系
java·后端·spring
(轻舟已过万重山)1 天前
第40章 Spring AI 实战:企业级 AI 应用架构
人工智能·spring·架构
vHelios1 天前
【电商项目】商品服务模块的问题解决与代码逻辑思考
java·sql·mybatis
范什么特西1 天前
回答知识总结04(redis)
数据库·redis·缓存