延迟加载
1.什么是延迟加载?
也称为懒加载,LazyLoading。
当代码中执行到查询语句时,并不是直接到DB中执行select语句进行查询,而是根据设置好的延迟策略,将查询向后推迟,这就称为延迟加载。
使用延迟加载可以减轻DB服务器的压力。
2.MyBatis的延迟加载
1)只能对关联对象进行查询时,使用延迟加载策略。对于主加载对象,均采用直接加载。
2)要应用延迟加载查询,只能使用多表单独查询,而不能使用多表连接查询。因为多表连接查询的本质是查询一张表,将多张表首先连接为了一张
表后,再进行的查询。查询一个信息,就会将所有信息全部查询到。
3.基本概念
1)主加载对象
2)关联对象
3)主表
4)关联表,也称为从表
4.延迟加载策略
延迟加载策略是指导DB中真正执行select语句进行查询的时机设置。
MyBatis中的延迟加载策略共分为三种:
1)直接加载:代码中执行到查询语句,马上就到DB中执行select查询。
2)侵入式延迟加载:将关联对象的详情侵入到了主加载对象详情之中,作为主加载对象的详情的一部分出现。当要访问主加载对象的详情时
,需要将主加载对象所以详情进行查询,但由于关联对象详情的一部分出现了,所以,这个查询不仅会查询主表,还会查询关联表。
3)深度延迟加载:当需要访问主加载对象详情时,只会查询主表,而不会查询关联表。只有当真正访问关联对象时,才会查询关联表。