mybatis什么时候不走 缓存??

张开发
2026/4/13 17:16:55 15 分钟阅读

分享文章

mybatis什么时候不走 缓存??
MyBatis什么时候不走 缓存??一级缓存sqlSession不是同一个对象肯定就不走缓存了ThreadLocal只能确保同一个会话当new sqlSessionFactoryBuild新的会话新的那么会有2个不同的sqlSession,那么缓存失效查询条件不一样肯定也不走缓存这个才是根源所在什么时候一级缓存失效?第一次DQL和第二次DQL之间你做了以下两件事中的任意一件都会让一级缓存清空:1.执行了sqlSession的clearCache方法这是手动清空缓存。2.执行了INSERT DELETE UPDATE语句。二级缓存的范围是qlSessionFactory。使用二级缓存需要具备以下几个条件:1.setting namecacheEnabled”valuetrue全局性地开启或关闭所有映射器配置文件中已配置的任何缓存。默认就是true无需设置2.在需要使用二级缓存的SqlMapper.xml文件中添加配置:cache/3.使用二级缓存的实体类对象必须是可序列化的也就是必须实现java.io.Serializable接口4.SqlSession对象关闭或提交之后一级缓存中的数据才会被写入到二级缓存当中。此时二级缓存才可用。我也不懂。。。

更多文章