温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

MyBatis查询缓存失效策略

发布时间:2024-09-11 11:31:31 来源:亿速云 阅读:93 作者:小樊 栏目:编程语言

MyBatis 提供了一级缓存和二级缓存两种缓存机制,它们的作用范围和失效策略有所不同。

  1. 一级缓存(SqlSession 级别的缓存):
  • 作用范围:一级缓存是 SqlSession 级别的缓存,只在同一个 SqlSession 中有效。当 SqlSession 执行 commit、rollback、close 或者 update、insert、delete 操作时,会清空一级缓存。

  • 失效策略:一级缓存的失效策略主要包括以下几点:

    • 当 SqlSession 执行 commit 操作时,会清空一级缓存。
    • 当 SqlSession 执行 rollback 操作时,会清空一级缓存。
    • 当 SqlSession 执行 close 操作时,会清空一级缓存。
    • 当 SqlSession 执行 update、insert、delete 操作时,会清空一级缓存。
  1. 二级缓存(Mapper 级别的缓存):
  • 作用范围:二级缓存是 Mapper 级别的缓存,跨越多个 SqlSession 共享。需要注意的是,二级缓存只适用于查询操作,对于 update、insert、delete 操作,需要手动配置才能触发缓存更新。

  • 失效策略:二级缓存的失效策略主要包括以下几点:

    • 当 Mapper 执行 update、insert、delete 操作时,如果配置了 flushCache=“true”,则会清空二级缓存。
    • 当 Mapper 执行 select 操作时,如果配置了 useCache=“false”,则不会使用二级缓存。
    • 当 Mapper 执行 select 操作时,如果配置了 resultMap 的 cache 属性,则会将查询结果存入二级缓存。
    • 当 Mapper 执行 select 操作时,如果配置了 resultMap 的 eviction 属性,则会根据指定的策略来清空二级缓存。

总之,MyBatis 的一级缓存和二级缓存都有自己的失效策略,可以根据实际需求进行配置和调整。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI