首页 > 其他 > 详细

Mybatis 延迟加载和缓存

时间:2019-10-14 15:45:24      阅读:109      评论:0      收藏:0      [点我收藏+]

 1、延迟加载(lazyLoadingEnable)

      1)什么是延迟加载

         MyBatis中的延迟加载,也称为懒加载,是指在进行关联查询的时候,按照设 置延迟加载规则推迟对关联对象的select检索。延迟加载可以有效的减少数据库 的压力

      注意:MyBatis延迟加载只是对关联对象的查询有延迟设置,对于主加载对象 都是直接执行查询语句的

 

      2)关联对象的加载时机

           1.直接加载

      2.侵入式延迟加载(aggressiveLazyLoading) 也可看做立即加载

      3.深度延迟加载

 

               直接加载:即执行对象的select语句,完成对主加载马上执行对关联对象的select查询。

 

               侵入式延迟加载:执行对主加载对象的查询时,不会执行对关联对象的查询。但是当要访问主加载对象的详情时马上执行对关联对象的select查询。即对关联对象的执行查询,

                侵入到了主加载对象的访问详情中。也可理解为:将关联对象的详情侵入到主加载对象的详情中去,即将关联对象的详情作为主加载对象的一部分出现了

 

               深度延迟:执行对主加载对象的查询时,不会执行对关联对象的查询。访问主加载对象的详情时也不会执行关联对象的select查询。只有当真正访问关联对象的详情时,

             才会执行对关联对象的select查询。

 

         注意的问题:延迟加载的应用要求:关联对象的查询与主加载对象的查询必须是分别进行的select语句不能是使用多表连接所进行的select查询。因为,多表连接查询,

                        实质是对一张表的查询,对由多个表连接后形成的一张表的查询。会一次性将多张表的所有信息查询出来。

 

Mybatis 延迟加载和缓存

原文:https://www.cnblogs.com/lowerma/p/11671065.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!