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