全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  应聘面试  >  Java面试题

mybatis是否支持延迟加载?延迟加载的原理是什么?

发布时间:2022-10-27 16:48:19
发布人:wjy

  1. mybatis是否支持延迟加载? 延迟加载其实就是讲数据加载时机推迟,比如推迟嵌套查询的时机。延迟加载可以实现先查询主表,按需实时做关联查询,返回关联表结果集,一定程度上提高了效率。mybatis仅支持关联对象association和关联集合对象collection的延迟加载,association是一对一,collection是一对多查询,在mybatis配置文件中可以配置lazyloadingEnable=true/false。

mybatis 是否支持延迟加载?延迟加载的原理是什么?

  2. 延迟加载的原理是什么? 使用CGLIB为目标对象建立代理对象,当调用目标对象的方法时进入拦截器方法。

  比如调用a.getB().getName(),拦截器方法invoke()发现a.getB()为null,会单独发送事先准备好的查询关联B对象的sql语句,把B查询出来然后调用a.setB(b),也是a的对象的属性b就有值了,然后调用getName(),这就是延迟加载的原理。

相关文章

华为外包java面试题-Java实现单链表的逆序

2023-07-25

Java程序员面试题

2023-07-21

Java面试题及答案

2023-07-20

什么是Java中的线程?如何创建和启动线程?

2023-07-18

Java中的异常处理机制是什么?请解释try-catch-finally块的作用

2023-07-18

面向对象编程的特征是什么?请解释每个特征

2023-07-18
在线咨询 免费试学 教程领取