延迟加载:
当我们对拥有一对多或者多对一关系的数据进行查询时,可以使用延迟加载。
比如:
员工存在于部门中,当我们查询员工信息时,同时会查询到部门信息。但我们当前只需要员工信息,不需要部门信息,这时就可以使用延迟加载,需要到员工的部门时,再去加载关于部门的查询。从而可以减少数据库的查询压力。
全局配置:
MyBatis关于延迟加载的全局配置:
lazyLoadingEnabled:是否开启懒加载
aggressiveLazyLoading:积极加载,一次查询所有的信息
<settings>
<!--lazyLoadingEnabled:延迟加载,关联对象延迟加载(分布查询延迟)-->
<setting name="lazyLoadingEnabled" value="true"/>
<!--aggressiveLazyLoading:如果开启,则延迟加载失效-->
<setting name="aggressiveLazyLoading" value="false"/>
</settings>
懒加载的控制
当我们开启懒加载后,默认为懒加载,但也可以在查询时进行设置。association和collection标签都存在属性:fetchType
- fetchType="lazy"表示开启延迟加载
- fetchType="eager"表现不使用延迟加载