zoukankan      html  css  js  c++  java
  • MyBatis 缓存机制

    Mybatis 有两级缓存:

      一级缓存:

        也称为本地缓存,SqlSession级别的缓存。一级缓存是一直开启的;

        与数据库同一次会话期间查询到的数据会放在本地缓存中,以后如果需要获取相同的数据,直接从缓存中拿,没必要再去查询数据库

        一级缓存失效情况:

          1、SqlSession 不同

          2、SqlSession 相同,查询条件不同

          3、SqlSession 相同,两次查询之间执行了增删改操作

          4、SqlSession 相同,手动清除了一级缓存

      二级缓存:

        全局缓存,namespace 级别的缓存,一个 namespace 对应一个二级缓存

        工作机制:

          1、一个会话,查询一条数据,这个数据就会被放在一级缓存中

          2、如果缓存关闭,一级缓存中的数据会被保存到二级缓存中。新的会话查询信息,就可以参照二级缓存中的内容

          3、不同 namespace 查出的数据会被放在自己对应的缓存中

          注意:数据从二级缓存中获取

              查出的数据会被默认先放在一级缓存中,只有会话提交或者关闭后,一级缓存中的数据才会提交到二级缓存中

        使用:

          1、开启全局缓存配置:cacheEnabled设为 true

          2、去 mapper.xml 中配置 <cache></cache>

          3、我们的 POJO 需要实现序列化接口

  • 相关阅读:
    十条jQuery代码片段助力Web开发效率提升
    C#如何释放已经加载的图片 (转)
    获取文件夹下最新文件 (转)
    时间格式转换
    调整ListBox控件的行间距及设置文本格式
    c++builder调用vc的dll
    mws文件中的tab文件改为相对路径
    .net 对配置文件内容的操作
    winform下mapxtreme2008 v7.0 生成release版提示找不到dll问题
    vue实现按字母A-Z选择城市
  • 原文地址:https://www.cnblogs.com/zyx1301691180/p/7800884.html
Copyright © 2011-2022 走看看