【MyBatis】学习笔记13:延迟加载(懒加载)

简介: 【MyBatis】学习笔记13:延迟加载(懒加载)

Mybatis13:延迟加载(懒加载)


延迟加载是分步查询的好处,默认是不开启延迟加载的,要开启需要在核心配置文件中设置全局配置信息

【应当开启,即设置为true】【默认值False】延迟加载的全局开关属性:lazyLoadingEnabled 开启是所有关联对象都会延迟加载

【应该关闭】【默认值False(true<3.4.1)】aggressivelazyloaing 若开启该属性,则任何方法调用都会加载该对象的所有属性;关闭该属性,则每个属性会按需加载

q6.png

测试

基于学习笔记12(【MyBatis】学习笔记12:通过级联属性赋值解决多对一的映射关系 - 萌狼蓝天 - 博客园 (cnblogs.com))

测试1

如果,设置

<setting name="lazyLoadingEnabled" value="false"/>

q5.png

如果,设置

<setting name="lazyLoadingEnabled" value="true"/>

q4.png

测试2

如果,设置

 <setting name="lazyLoadingEnabled" value="false"/>

q3.png

如果,设置

 <setting name="lazyLoadingEnabled" value="true"/>

q2.png

部分特殊情况处理

全局延迟加载开启后,若是部分功能无需延迟加载,则可以按照以下情况操作

q1.png

属性 fetchType

当开启全局延迟加载之后,可通过此属性手动控制延迟加载效果

参数:

lazy:延迟加载
  eager:立即加载

【Mybatis】学习笔记01:连接数据库,实现增删改

【Mybatis】学习笔记02:实现简单的查

【MyBatis】学习笔记03:配置文件进一步解读(非常重要)

【MyBatis】学习笔记04:配置文件模板

【MyBatis】学习笔记05:获取参数值的两种方式

【MyBatis】学习笔记06:各种查询所返回数据的数据类型

【MyBatis】学习笔记07:模糊查询

【MyBatis】学习笔记08:批量删除

【MyBatis】学习笔记09:批量删除

【MyBatis】学习笔记10:添加功能获取自增的主键

【MyBatis】学习笔记11:解决字段名和属性的映射关系

【MyBatis】学习笔记12:通过级联属性赋值解决多对一的映射关系

相关文章
|
6月前
|
Java 数据库连接 数据库
【Mybatis】mybatis 是否支持延迟加载?
【Mybatis】mybatis 是否支持延迟加载?
|
4月前
|
XML SQL Java
MyBatis 的延迟加载是如何实现的
MyBatis的延迟加载(懒加载)特性提高了性能,只在需要时加载关联数据。配置延迟加载需在`mybatis-config.xml`中设置`lazyLoadingEnabled`为`true`,`aggressiveLazyLoading`为`false`。实现原理基于代理对象,MyBatis为延迟加载属性创建代理,在访问时触发实际查询。代理通过Java动态代理实现,拦截方法调用,按需加载数据。
116 0
|
6月前
|
SQL Java 关系型数据库
MyBatisPlus学习笔记(SpringBoot版)
MyBatisPlus学习笔记(SpringBoot版)
502 0
|
6月前
|
存储 缓存 Java
【MyBaits】4、延迟加载、MyBatis 的缓存
【MyBaits】4、延迟加载、MyBatis 的缓存
46 0
|
6月前
|
Java 数据库连接 mybatis
Mybatis中延迟加载~
Mybatis中延迟加载~
|
6月前
|
Java 数据库连接 mybatis
一文彻底搞懂Mybatis系列(十二)之MyBatis多对一映射延迟加载(association和lazyLoadingEnabled)
一文彻底搞懂Mybatis系列(十二)之MyBatis多对一映射延迟加载(association和lazyLoadingEnabled)
112 0
|
SQL Java 关系型数据库
|
SQL Java 关系型数据库