mybatis 延迟加载

使用延迟加载的意义

在进行数据库查询时,为了提高数据库查询性能,尽量使用单表查询,因为单表查询比多表查询速度要快

如果查询单表就可以满足需求,一开始先查询单表,当需要关联信息时,再关联查询。当需要关联信息再查询 称为“延迟加载”

一对一延迟加载

配置mybatis延迟加载

需要配置的项

设置项 描述 允许值 默认值
lazyLoadingEnabled 全局性设置懒加载。如果设为‘false’,则所有相关联的都会被初始化加载。 true or false false
aggressiveLazyLoading 当设置为‘true’的时候,懒加载的对象可能对任何懒属性全部加载。否则,每个属性都按需加载。 true or false true
aggressiveLazyLoading
     侵略性 lazy loading 开关, 默认为true, 这个属性比较搞笑,如果为true则当你访问任何一个属性都会加载所有的其他lazy load属性,即使你根本没有调用哪个lazy load属性,说白了就是aggressiveLazyLoading=true,则lazy load等于没用,所以要使用lazy load还是将其设为false

具体配置
mybatis 延迟加载_第1张图片

Sql
mybatis 延迟加载_第2张图片

resultMap
mybatis 延迟加载_第3张图片

测试
mybatis 延迟加载_第4张图片
mybatis 延迟加载_第5张图片

总结

延迟加载实现方式多样
mybatis提供延迟加载的功能只能 用于service层。

一对多的延迟加载

略(提示:在collection中添加select属性)

你可能感兴趣的:(mybatis)