我是靠谱客的博主 俭朴帆布鞋,最近开发中收集的这篇文章主要介绍9_Mybatis 是否支持延迟加载,实现原理是什么?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.Mybatis仅支持association关联对象和collection关联集合对象的延迟加载
	association 指的就是一对一查询
	collection  指的就是一对多查询
	
	在Mybatis配置文件中,可以配置是否启用延迟加载 
	lazyLoadingEnabled=true|false
 
 2.原理是:
 	使用 CGLIB 创建目标对象的代理对象
 	当调用目标方法时,进入拦截器方法
 	调用 a.getB().getName(),拦截器 invoke()方法发现 a.getB()null 值
 	那么就会单独发送事先保存好的查询关联B对象的sql
 	把B查询上来,然后调用 a.setB(b)
 	于是a的对象b属性就有值了
 	接着完成a.getB().getName()方法的调用

1.Mybatis仅支持association关联对象和collection关联集合对象的延迟加载
association 指的就是一对一查询
collection 指的就是一对多查询
在Mybatis配置文件中,可以配置是否启用延迟加载
lazyLoadingEnabled=true|false

2.原理是:
使用 CGLIB 创建目标对象的代理对象
当调用目标方法时,进入拦截器方法
调用 a.getB().getName(),拦截器 invoke()方法发现 a.getB()是 null 值
那么就会单独发送事先保存好的查询关联B对象的sql
把B查询上来,然后调用 a.setB(b)
于是a的对象b属性就有值了
接着完成a.getB().getName()方法的调用

最后

以上就是俭朴帆布鞋为你收集整理的9_Mybatis 是否支持延迟加载,实现原理是什么?的全部内容,希望文章能够帮你解决9_Mybatis 是否支持延迟加载,实现原理是什么?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部