MyBatis 中的缓存什么时候会被清理?

MyBatis 中的缓存会在以下情况下被清理:

一级缓存:

一级缓存是 SqlSession 级别的缓存,它的生命周期与 SqlSession 一致。因此,当 SqlSession 被关闭或者提交时,一级缓存就会被清空。另外,如果执行了任何一种 update 操作(包括:insert、update、delete),对应的 SqlSession 中的一级缓存也会被清空。

二级缓存:

二级缓存是 namespace 级别的缓存,多个 SqlSession 可以共享。如果在一个 SqlSession 中执行了任何一种 update 操作(包括:insert、update、delete),那么这个 SqlSession 对应的二级缓存也会被清空。

此外,二级缓存还可以通过设置 <cache> 标签的 flushInterval 属性来设置自动清理的时间间隔,单位是毫秒。如果 flushInterval 设置为 60000,那么每隔60秒,缓存就会自动清理一次。

示例:

<cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true"/>

以上就是 MyBatis 中缓存清理的情况,希望能帮助到你。

发表评论

后才能评论