mybatis一级缓存失效
时间: 2023-11-07 20:03:44 浏览: 99
Mybatis 缓存原理及失效情况解析
Mybatis一级缓存是指在SqlSession的生命周期内,通过缓存将查询的结果存储起来,以提高查询的性能。然而,一级缓存的生命周期和SqlSession一致,当SqlSession结束或被关闭时,一级缓存也会被清空,即一级缓存的作用域只在同一个SqlSession内。
一级缓存的失效可以通过以下几种方法:
1. 在同一个SqlSession中手动调用clearCache()方法来清空一级缓存。
2. 在同一个SqlSession中进行了任何一次增删改操作,都会导致一级缓存的失效。
3. 在同一个SqlSession中执行了flushStatements()方法,强制刷新全部的待处理的SQL语句,也会导致一级缓存的失效。
需要注意的是,当使用多个SqlSession或者在分布式环境下,对数据库进行增删改操作时,会引起脏数据,因此建议将一级缓存的级别设定为Statement,即不使用一级缓存。
阅读全文