博客
关于我
MyBatis(十):MyBatis懒加载 延迟加载详解
阅读量:762 次
发布时间:2019-03-23

本文共 1129 字,大约阅读时间需要 3 分钟。

MyBatis延迟加载详解

延迟加载(Lazy Loading)是MyBatis中一个非常实用的特性,旨在通过推迟对关联对象的查询,减少数据库的负载。以下将从基础到应用详细探讨MyBatis的延迟加载机制。

延迟加载的概念

延迟加载的核心思想是在主查询完成后,根据预设规则推迟对关联对象的查询。这种机制特别适用于关联多个表的情景,能够显著减少数据库的查询压力。需要注意的是,延迟加载仅适用于有明确延迟设置的关联对象,而主查询仍旧会直接执行。

延迟加载的时机

MyBatis提供了三种延迟加载的策略,可以根据具体需求灵活选择:

  • 直接加载:在主对象查询完成后,立即执行关联对象的查询。

  • 侵入式延迟:仅在访问关联对象的属性详情时,才会执行关联查询。这种方式能够更好地控制查询的执行时间。

  • 深度延迟:只有在真正访问关联对象详情时,才会触发关联查询。

  • 延迟加载的实现

    要在MyBatis中实现延迟加载,可以按照以下步骤操作:

  • 全局延迟设置

    在MyBatis的核心配置文件中启用延迟加载功能:

  • 部分延迟设置

    在关联查询的collectionassociation标签中,通过fetchType属性指定延迟策略。例如:

    通过这种方式,可以在特定关联中启用延迟加载,而不受全局配置的影响。

  • 注意事项

    在实际应用中,可能会遇到以下问题:

  • 调试问题:在调试模式下,MyBatis会重新执行代码,导致延迟加载可能无法生效。为了规避这种情况,可以尝试以下方法:

    • 不进行调试打断,直接打印分割线并输出结果。
    @Testpublic void testResult() {  User user = userMapper.findUserById(1);  System.out.println("------------------查询OrderList分割线------------------");  System.out.println(user.getOrderList());}
    • 修改MyBatis核心配置文件,设置lazyLoadTriggerMethods为空:

    这些方法可以帮助开发者更好地判断延迟加载是否正常工作。

  • 通过以上方法,开发者可以充分利用MyBatis的延迟加载功能,优化数据库性能,同时在调试过程中也能避免因.debug模式导致的问题。

    转载地址:http://cwmzk.baihongyu.com/

    你可能感兴趣的文章
    OSPF技术连载15:OSPF 数据包的类型、格式和邻居发现的过程
    查看>>
    OSPF技术连载16:DR和BDR选举机制,一篇文章搞定!
    查看>>
    OSPF技术连载17:优化OSPF网络性能利器——被动接口!
    查看>>
    OSPF技术连载18:OSPF网络类型:非广播、广播、点对多点、点对多点非广播、点对点
    查看>>
    OSPF技术连载19:深入解析OSPF特殊区域
    查看>>
    SQL Server 复制 订阅与发布
    查看>>
    OSPF技术连载20:OSPF 十大LSA类型,太详细了!
    查看>>
    OSPF技术连载21:OSPF虚链路,现代网络逻辑连接的利器!
    查看>>
    OSPF技术连载22:OSPF 路径选择 O > O IA > N1 > E1 > N2 > E2
    查看>>
    OSPF技术连载2:OSPF工作原理、建立邻接关系、路由计算
    查看>>
    OSPF技术连载5:OSPF 基本配置,含思科、华为、Junifer三厂商配置
    查看>>
    OSPF技术连载6:OSPF 多区域,近7000字,非常详细!
    查看>>
    OSPF技术连载7:什么是OSPF带宽?OSPF带宽参考值多少?
    查看>>
    OSPF技术连载8:OSPF认证:明文认证、MD5认证和SHA-HMAC验证
    查看>>
    OSPF故障排除技巧
    查看>>
    spring配置文件中<context:property-placeholder />的使用
    查看>>
    OSPF有哪些优势?解决了RIP的什么问题?
    查看>>
    OSPF理论
    查看>>
    OSPF的七种类型LSA
    查看>>
    OSPF的安全性考虑:全面解析与最佳实践
    查看>>