MyBatis 支持的缓存刷新模式包括:
默认模式(default):这是 MyBatis 的默认缓存刷新模式,不需要显式地指定。在该模式下,当某个语句对数据库进行了写操作时,会清空所有的二级缓存。
提交模式(commit):在该模式下,当某个语句对数据库进行了写操作并提交事务后,会清空所有的二级缓存。该模式比默认模式更加细粒度,可以避免频繁地清空缓存,但是会增加提交事务的开销。
定时刷新模式(interval):在该模式下,会定时地刷新二级缓存中的内容,以保证缓存数据的有效性。需要设置一个时间间隔,单位为毫秒,表示多长时间刷新一次。这种模式适用于数据更新不频繁的场景。
永不刷新模式(never):在该模式下,不会自动刷新二级缓存,只有手动调用 clearCache() 方法时才会清空缓存。这种模式适用于数据变化很少的场景。
可以在 MyBatis 的配置文件中通过 元素的 localCacheScope 属性来设置缓存的作用范围和缓存刷新模式,例如:
<settings>
<setting name="localCacheScope" value="SESSION"/>
<setting name="cacheEnabled" value="true"/>
<setting name="flushCache" value="commit"/>
</settings>
在上面的例子中,localCacheScope 属性被设置为 SESSION,表示缓存的作用范围为会话级别。同时,cacheEnabled 属性被设置为 true,表示启用缓存功能。最后,flushCache 属性被设置为 commit,表示使用提交模式进行缓存刷新。