zoukankan      html  css  js  c++  java
  • Mybatis开启二级缓存(全局缓存)的方法

    Mybatis开启二级缓存的方法

    开启步骤

    1.在 mybatis-config.xml 的配置文件中进行显示配置,开启二级缓存(全局缓存)
    2.在 Mapper.xml 文件中添加cache标签

    一、开启全局缓存

    在Mybatis的官方文档中可以看出已经默认开启了二级缓存

    但为了代码的可读性,在团队开发中为了方便的告诉队员你使用了二级缓存,这时候需要在 mybatis-config.xml 的配置文件中手动添加开启设置。二级缓存是基于namespace级别的,一个命名空间对应一个二级缓存。

    <settings>
          <!--显示的开启全局缓存-->
          <setting name="cacheEnabled" value="true"/>
    </settings>
    

    二、在 Mapper.xml 文件中添加cache标签

    在要使用二级缓存的Mapper.xml文件中添加cache标签

    <!--在当前 Mapper.xml文件开启二级缓存-->
    <cache/>
    

    也可以自定义cache标签参数

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

    eviction:清除策略为FIFO缓存,先进先出原则,默认的清除策略是 LRU
    flushInterval:属性可以被设置为任意的正整数,设置的值应该是一个以毫秒为单位的合理时间量
    size:最多可以存储结果对象或列表的引用数
    readOnly:只读属性,可以被设置为 true 或 false。

    三、注意点

    我们在使用缓存的时候要记得序列化实体类,否则会抛出实体类未序列化异常

    需要在实体类添加 implements Serializable

    总结

    • 二级缓存是基于namespace级别的,在同一个Mapper下有效
    • 所有的数据都会先放在一级缓存中
    • 只有当会话提交或关闭时,才会提交到二级缓存中

    文章参考:
    1.Mybatis官方文档
    2.狂神说视频

  • 相关阅读:
    洛谷P2602 [ZJOI2010]数字计数 题解
    数位DP模板
    The Meaningless Game 思维题
    CF55D Beautiful numbers 数位DP
    NOIP 2016 洛谷 P2827 蚯蚓 题解
    弹性碰撞问题:Ants+Linear world
    BZOJ1294 洛谷P2566 状态压缩DP 围豆豆
    朋友HDU
    树的深度———树形DP
    CF1292C Xenon's Attack on the Gangs 题解
  • 原文地址:https://www.cnblogs.com/tioxy/p/13060448.html
Copyright © 2011-2022 走看看