开发者社区> 问答> 正文

MyBatis的懒加载有什么用、怎么用

懒加载有何用,我看网上很多博客都是相同的 demo 他们只是在配置上加了懒加载,但是,在 mapper.xml 的几个 sql 配置上没有任何属性关于延迟加载的配置,在调用的时候也没用到什么延迟加载相关的API,所以这个懒加载有什么用?怎么用?

图片.png

展开
收起
景凌凯 2020-04-22 17:52:36 1637 0
1 条回答
写回答
取消 提交回答
  • 有点尴尬唉 你要寻找的东西已经被吃掉啦!
    • 对象用到的时候执行对应子查询,这就是懒加载了。这个 sql 不完全执行,用的时候,才执行子查询。那在 mybatis 中,resultMap 可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。
    • 会先建立一个代理对象,等你用的时候再执行具体的sql 查询,关联结果也是一个代理类;A->B 这种场景,如果用了懒加载,当只是使用A中的数据时,B对应查询不执行,只触发A对应的查询。当真正需要B数据的时候才去触发A与B的笛卡尔乘积计算。
    2020-04-22 17:52:56
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第6讲】:Spring Boot 2.0实战MyBatis与优化(Java面试题) 立即下载
Spring框架入门 立即下载
Java Spring Boot开发实战系列课程【第7讲】:Spring Boot 2.0安全机制与MVC身份验证实战(Java面试题) 立即下载