MyBatis 默认会开启缓存机制吗? 怎么开启?
一级缓存:
MyBatis 默认开启一级缓存,一级缓存是 SqlSession 级别的缓存,它的生命周期与 SqlSession 一致。当我们在同一个 SqlSession 中执行相同的 SQL 语句时,第一次查询后的结果会被缓存在这个 SqlSession 中,如果我们再次执行相同的 SQL 语句,MyBatis 就会直接从缓存中取出结果,而不需要再次访问数据库。
二级缓存:
MyBatis 的二级缓存默认是不开启的,需要我们手动去开启。二级缓存是跨 SqlSession 的,多个 SqlSession 可以共享这个缓存。
开启二级缓存的步骤如下:
- 在 MyBatis 的全局配置文件中开启二级缓存:
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
- 在需要使用二级缓存的 mapper 映射文件中添加如下配置:
<cache/>
或者如果你想自定义缓存的行为,你可以这样配置:
<cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true"/>
以上就是关于 MyBatis 缓存的开启方法。但是需要注意的是,虽然缓存可以提高性能,但是也可能会导致数据不一致的问题,因此在使用缓存时需要考虑到这个问题,并采取合适的策略来处理。