mybatis的三级缓存机制
时间: 2023-11-12 10:04:32 浏览: 129
MyBatis的三级缓存机制指的是MyBatis在执行SQL语句时,会默认启用三级缓存,以提高查询性能。
三级缓存分别是:
1. 一级缓存:也称为本地缓存,指的是MyBatis在同一次会话中执行相同SQL语句时,会将结果缓存到内存中,下次查询相同的SQL语句时,直接从缓存中读取结果,而不会再次执行SQL语句。一级缓存的作用域是会话级别的。
2. 二级缓存:也称为全局缓存,指的是MyBatis在多次会话中执行相同SQL语句时,会将结果缓存到内存中,下次查询相同的SQL语句时,直接从缓存中读取结果,而不会再次执行SQL语句。二级缓存的作用域是Mapper级别的。
3. 三级缓存:也称为分布式缓存,指的是MyBatis在多个应用程序之间共享缓存,以提高查询性能。三级缓存的作用域是全局级别的,需要使用第三方缓存组件来实现。
需要注意的是,三级缓存在默认情况下是关闭的,需要手动开启。开启方法如下:
在mybatis-config.xml文件中添加如下配置:
```
<settings>
<setting name="cacheEnabled" value="true"/>
<setting name="localCacheScope" value="SESSION"/>
<setting name="lazyLoadingEnabled" value="true"/>
</settings>
```
其中,cacheEnabled表示是否开启缓存,localCacheScope表示一级缓存的作用域,lazyLoadingEnabled表示是否启用延迟加载。
需要注意的是,开启二级缓存时,需要在Mapper.xml文件中添加如下配置:
```
<cache type="org.mybatis.caches.ehcache.EhcacheCache"/>
```
其中,type属性指定了缓存的类型,这里使用了EhcacheCache。需要在项目中添加Ehcache的依赖。
阅读全文