zoukankan      html  css  js  c++  java
  • mybatis文件映射之利用延迟加载解决分布查询每次查询Employee时都得查Department(四)

    之前关联查询时,每次查Employee时都会带上Department,现在我们想当只有需要查Department时才去查找它,可以使用延迟加载。

    在mybatis配置文件中配置:

        <settings>
            <setting name="lazyLoadingEnabled" value="true"/>
            <setting name="aggressiveLazyLoading" value="false"/>
        </settings>

    此时再利用上节的分布查询的代码进行测试,只不过在测试时:如果我们只是要打印lastName:

                Employee employee = mapper.getEmpByIdStep(3);
                System.out.println(employee.getLastName());

    输出:

    DEBUG 01-20 15:04:34,894 ==> Preparing: select * from tbl_employee where id=? (BaseJdbcLogger.java:145)
    DEBUG 01-20 15:04:35,016 ==> Parameters: 3(Integer) (BaseJdbcLogger.java:145)
    DEBUG 01-20 15:04:35,245 <== Total: 1 (BaseJdbcLogger.java:145)
    小红

    假设我们要打印dept:

                Employee employee = mapper.getEmpByIdStep(3);
                System.out.println(employee.getDept());

    输出:

    DEBUG 01-20 15:05:00,830 ==> Preparing: select * from tbl_employee where id=? (BaseJdbcLogger.java:145)
    DEBUG 01-20 15:05:00,872 ==> Parameters: 3(Integer) (BaseJdbcLogger.java:145)
    DEBUG 01-20 15:05:01,047 <== Total: 1 (BaseJdbcLogger.java:145)
    DEBUG 01-20 15:05:01,049 ==> Preparing: select * from tbl_department where id=? (BaseJdbcLogger.java:145)
    DEBUG 01-20 15:05:01,050 ==> Parameters: 1(Integer) (BaseJdbcLogger.java:145)
    DEBUG 01-20 15:05:01,053 <== Total: 1 (BaseJdbcLogger.java:145)
    Department [id=1, deptName=开发部]

    发现没,当我们使用了延迟加载后,当我们不使用Deparment时,只会发送一条sql语句。

  • 相关阅读:
    运用 MyPasswordSafe 规画暗码
    用Solaris Express体验OS新功能
    Linux体系上安顿Flash Media Server
    LyX 宣布支持 CJK 的 1.5 正式版
    对Unix效能器制止机能监测(下)
    Oracle在Solaris下的机能与调整简介
    Linux据有率无望在2008年打破4%
    Fedora更符合做技术人用
    Gimmie — 一个创新的 GNOME 面板步调
    Sun推出OpenSolaris 为技术创新注入活力
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12218076.html
Copyright © 2011-2022 走看看