mybatis的一级二级缓存
时间: 2023-11-05 18:36:46 浏览: 78
MyBatis 二级缓存 关联刷新实现
5星 · 资源好评率100%
Mybatis的缓存分为一级缓存和二级缓存。
一级缓存:
Mybatis的一级缓存是在SqlSession生命周期内的缓存,也就是在同一个SqlSession中,如果执行相同的SELECT语句,那么会直接从缓存中获取结果,而不会再次查询数据库。一级缓存默认是开启的,可以通过在映射文件中配置cacheEnabled属性来控制是否开启一级缓存。
二级缓存:
Mybatis的二级缓存是在SqlSessionFactory生命周期内的缓存,也就是在不同的SqlSession中,如果执行相同的SELECT语句,那么会从缓存中获取结果,而不会再次查询数据库。二级缓存需要手动开启并配置,可以在映射文件中配置<cache/>标签来开启缓存,并且需要让映射文件所在的命名空间开启缓存。
需要注意的是,一级缓存和二级缓存是互相独立的,二级缓存中的缓存结果不会影响一级缓存,也就是说在同一个SqlSession中,如果先执行了一次查询,那么结果会被缓存在一级缓存中,但是不会被缓存在二级缓存中。而在不同的SqlSession中,如果先执行了一次查询,那么结果会被缓存在二级缓存中,但是不会被缓存在一级缓存中。
阅读全文