mybatis缓存开启
时间: 2023-07-03 09:29:27 浏览: 49
MyBatis 默认情况下开启了缓存,可以在配置文件中进行配置。
MyBatis 提供了两级缓存:一级缓存和二级缓存。
一级缓存是指 SqlSession 级别的缓存,它只在当前 SqlSession 中有效。当多次执行相同的 SQL 时,若参数、SQL 语句和数据源都相同,则 MyBatis 会从缓存中直接取出结果,而不是再次查询数据库。一级缓存是默认开启的,无需进行配置。
二级缓存是指 Mapper 级别的缓存,它可以被多个 SqlSession 共享。当多个 SqlSession 执行相同的 SQL 时,若参数、SQL 语句和数据源都相同,则 MyBatis 会从缓存中直接取出结果,而不是再次查询数据库。二级缓存需要在配置文件中进行配置,具体配置如下:
在 MyBatis 的配置文件中,添加如下配置:
```
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
```
开启二级缓存后,还需要在 Mapper 接口中进行配置,具体配置如下:
```
@CacheNamespace(flushInterval = 60000)
public interface UserMapper {
@Select("select * from user where id = #{id}")
@Options(useCache = true)
User selectUserById(Integer id);
}
```
其中,@CacheNamespace 注解用于指定 Mapper 接口对应的缓存命名空间,flushInterval 属性表示缓存的刷新时间间隔,单位为毫秒。@Options 注解用于指定是否开启缓存。
需要注意的是,开启二级缓存后,若数据发生变化,缓存也需要相应地更新。MyBatis 提供了多种缓存刷新策略,可以根据实际情况进行配置。