zoukankan      html  css  js  c++  java
  • MyBatis 延迟加载的三种加载方式深入,你get了吗?

    延迟加载

      延迟加载对主对象都是直接加载,只有对关联对象是延迟加载。

      延迟加载可以减轻数据库的压力,

      延迟加载不可是一条SQL查询多表信息,这样构不成延迟加载,会形成直接加载。

      延迟加载分为三种类型:

    1.直接加载

    执行完主对象之后,直接执行关联对象。

    2.侵入式加载

    在执行主对象详情的时候,执行关联对象。

    3.深度延迟加载

    执行完主对象或主对象详情不会执行关联对象,只有用到关联对象数据的时候才走深度延迟加载。

      延迟加载默认情况下是关闭状态(false) 延迟加载下的侵入式加载默认情况下是开启状态(true)  在这种情况下延迟加载不生效, 比如说延迟加载是一个大的水龙头总闸,如果总闸没开,那么总闸里面的小的闸肯定没有水。如果想要使用延迟加载必须写成true

      现在知道延迟加载的状态,那他是在哪里设置开启关闭状态的呢? 答案是在大配置文件中设置延迟加载的状态

    看一下几个例子

    1.默认情况的延迟加载  (这是在MyBatis3.4.1版本之前的默认情况) :(aggressiveLazyLoading)侵入式延迟加载为true, 在3.4.1之后的版本(aggressiveLazyLoading)侵入式延迟加载默认值为false

     

      2.侵入式延迟加载

     

    现在看一下访问主属性的侵入式延迟加载的状态如何

     

       3.深度延迟加载

    深度延迟加载 大配置中的设置

    只访问主对象的属性,深度延迟加载的状态为:

     

    现在我们看一下访问关联对象的属性,深度延迟加载的状态为:

    在大配置文件设置延迟加载是使用的是setting节点,与其他节点位置顺序不要乱。

    大配置中的延迟加载代码:

    <settings>
    <setting name="lazyLoadingEnabled" value="true"/>
    <setting name="aggressiveLazyLoading" value="false"/> <!--现在的状态为深度延迟加载-->
    </settings>
    <settings>
    <setting name="lazyLoadingEnabled" value="true"/>
    <setting name="aggressiveLazyLoading" value="true"/> <!--现在的状态为侵入式延迟加载-->
    </settings>
    
    
    <settings>
    <setting name="lazyLoadingEnabled" value="false"/>
    <setting name="aggressiveLazyLoading" value="false"/> <!--现在的状态为直接加载-->(3.4.1版本之后的直接加载设置)
    </settings>
    
    
    <settings>
    <setting name="lazyLoadingEnabled" value="false"/>
    <setting name="aggressiveLazyLoading" value="true"/> <!--现在的状态为直接加载-->(3.4.1版本之前的直接加载设置)
    </settings>
     
  • 相关阅读:
    字典对象的 Pythonic 用法(上篇:转载)
    代码这样写更优雅(Python 版)(转载)
    [Python爬虫] 之二十七:Selenium +phantomjs 利用 pyquery抓取今日头条视频
    [Python爬虫] 之二十六:Selenium +phantomjs 利用 pyquery抓取智能电视网站图片信息
    [Python爬虫] 之二十五:Selenium +phantomjs 利用 pyquery抓取今日头条网数据
    [Python爬虫] 之二十四:Selenium +phantomjs 利用 pyquery抓取中广互联网数据
    [Python爬虫] 之二十三:Selenium +phantomjs 利用 pyquery抓取智能电视网数据
    MOVE降低高水位 HWM
    select查询语句执行顺序
    Oracle表空间维护总结
  • 原文地址:https://www.cnblogs.com/java-263/p/9940867.html
Copyright © 2011-2022 走看看