MyBatis三级缓存
时间: 2024-01-26 20:01:54 浏览: 141
mybatis缓存
MyBatis 有三级缓存,分别是:
1. 一级缓存:SqlSession 级别的缓存,也称为本地缓存。默认开启,可以通过配置文件或者代码来控制其开启和关闭。当 SqlSession 执行了一次查询操作后,查询结果会被存储在缓存中,如果再次执行相同的查询操作,就可以直接从缓存中获取结果。但是,一级缓存的作用域只在当前 SqlSession 中,如果需要使用多个 SqlSession,就需要启用二级缓存。
2. 二级缓存:Mapper 级别的缓存,也称为全局缓存。需要手动开启,并且需要在 Mapper.xml 中进行配置。二级缓存的作用域是 Mapper 级别的,也就是说,多个 SqlSession 可以共享同一个 Mapper 的缓存。但是,二级缓存的有效性也是有限制的,只有在 Mapper 文件中开启了缓存,并且查询语句的返回值是可序列化的对象时,才会启用二级缓存。
3. 三级缓存:分布式缓存,也称为集群缓存。需要使用第三方缓存框架,如 Redis、Ehcache 等,并且需要在配置文件中进行配置。三级缓存的作用域是全局级别的,可以跨越多个应用程序和服务器。但是,由于需要使用第三方缓存框架,配置和使用起来相对复杂。
阅读全文