mybatis 一级缓存
时间: 2023-08-16 09:06:48 浏览: 150
Mybatis的缓存1
MyBatis的一级缓存是指在同一个SqlSession中,通过查询获取的数据会被缓存在内存中。当下次再执行相同的查询时,MyBatis会先从缓存中查找数据,如果存在则直接返回缓存中的结果,而不需要再去数据库查询。
一级缓存的默认开启状态下,是针对同一个SqlSession有效的,即在同一个SqlSession中执行多次相同的查询会命中缓存。但是一级缓存的作用域是有限的,在SqlSession关闭之后,缓存也会被清空。
可以通过调用SqlSession的clearCache方法手动清空缓存,或者在执行更新操作(插入、更新、删除)时,MyBatis会自动清空对应的一级缓存。
需要注意的是,一级缓存的生命周期比较短暂,只在同一个SqlSession中有效,对于多线程环境或者分布式环境下的并发操作,一级缓存可能会带来数据不一致的问题。在这种情况下,可以考虑使用二级缓存来解决缓存失效的问题。
阅读全文