分步查询的优点:延迟加载
当我们只访问员工信息时候,是不会执行分步查询的第二条sql去查询部门信息的,也就是按需查询
访问:
访问员工信息Emp.getename() -->get方法
访问部门信息Emp.getdept() -->get方法,不访问dept属性则不调用第二条sql去查询部门信息
开启延迟加载
在配置文件中配置两个属性
1.lazyLoadingEnabled
默认关闭延迟加载,要设置为true
2.aggressiveLazyLoading
在mybatis 3.4.1版本以上默认关闭,要求也是关闭,所以不设置,但是要知道
mybatis 3.4.1以上版本配置文件中可以不写这条
在开启延迟加载后,所有的分步查询都将进行延迟加载,对于部分的分步查询,不需要使用延迟加载的时候,可以设置fetchtype
fetchType="eager" 立即加载
fetchType="lazy" 延迟加载