zoukankan      html  css  js  c++  java
  • mybatis高级(3)_延迟加载_深度延迟_一级缓存_二级缓存

    设置延迟加载需要在mybatis.xml中设置

    注:

    侵入式延迟加载为真时是延迟加载

    侵入式延迟加载为假时是深度延迟加载

    <!-- 延迟加载和深度延迟加载 -->
        <settings>
            <!-- 延迟加载 -->
            <setting name="lazyLoadingEnabled" value="true" />
            <!-- 侵入式延迟加载,默认值是true -->
            <setting name="aggressiveLazyLoading" value="false" />
        </settings>

    一级缓存

    注:

    1.框架底层使用map集合存储缓存

    2.MyBatis查询缓存机制。根据缓存区的作用域与生命周期,可划分为两种:一级缓存和二级缓存.MyBatis查询缓存的作用域是根据映射文件的namespace划分的,相同的namespace的mapper查询数据放在同一个缓存区域。不同namespace下的数据互不干扰。无论是一级缓存还是二级缓存,都是按照namespace进行分别存放的.一级、二级缓存的不同之处在于,SqlSession一旦关闭,则SqlSession中的数据将不存在,即一级缓存就不复存在。而二级缓存的生命周期与真个应用同步,与SqlSession是否关闭无关.换句话说,一级缓存是在同一线程(同一SqlSession)间共享数据,而二级缓存是在不同线程(不同的SqlSession)间共享数据。

    3.Mybatis一级缓存默认集成并开启

    4.MyBatis的查询依据是:Sql的id+SQL语句

    5.执行增删改时会清空缓存,虽然 底层都是update但是,sql标签必须对应操作,不然起到清空缓存的作用

     

    二级缓存

    1,开启二级缓存3个条件

    (1)在mybatis中设置cacheEnabled=true

    (2)在Mapper文件中添加<cache/>标签

    (3)实体类必须实现serialize接口

  • 相关阅读:
    Fidder
    常见正则表达式使用
    HTML5 Boilerplate
    微信公众号开发--微信机器人
    sublime text插件推荐
    个人博客开发-笔记
    css之图像替换
    关于浮动与清除浮动
    css定位机制
    Java 集合类实现原理
  • 原文地址:https://www.cnblogs.com/cnsdhzzl/p/6203571.html
Copyright © 2011-2022 走看看