MyBatis 懒加载是一种延迟加载关联对象的技术,以提高性能和内存利用率。通过在映射文件中设置 lazy 属性为 true 启用懒加载,MyBatis 只在首次访问关联关系时才会执行查询。懒加载的优点包括提高查询速度和减少内存使用量,但缺点是需要额外的查询和可能导致意外行为。一般建议在需要减少初始查询负载的情况下启用懒加载,但在需要确定关联关系完整性时禁用懒加载。

MyBatis 懒加载
什么是 MyBatis 懒加载?
MyBatis 懒加载是一种优化技术,它可以延迟加载关联对象,而不是在首次查询对象时立即加载。
如何启用懒加载?
在 MyBatis 的映射文件中,可以通过在关联关系映射中设置 lazy 属性为 true 来启用懒加载。例如:
懒加载如何工作?
当启用懒加载时,MyBatis 会在首次访问关联关系时才执行查询。这意味着在以下情况下才会触发关联关系查询:
技术上面应用了三层结构,AJAX框架,URL重写等基础的开发。并用了动软的代码生成器及数据访问类,加进了一些自己用到的小功能,算是整理了一些自己的操作类。系统设计上面说不出用什么模式,大体设计是后台分两级分类,设置好一级之后,再设置二级并选择栏目类型,如内容,列表,上传文件,新窗口等。这样就可以生成无限多个二级分类,也就是网站栏目。对于扩展性来说,如果有新的需求可以直接加一个栏目类型并新加功能操作
- 调用 getter 方法获取关联对象。
- 使用
JOIN查询加载关联对象。
懒加载的优点和缺点
优点:
- 提高性能:减少初始查询中加载的关联对象数量,从而提高查询速度。
- 内存利用率:只在需要时才加载关联对象,从而减少内存使用量。
缺点:
- 额外查询:首次访问关联对象时需要额外执行查询。
- 意外行为:如果在查询返回关联对象后延迟加载的属性发生更改,则可能会导致意外的行为。
使用建议
一般情况下,建议在大数据量或需要减少初始查询负载的情况下启用懒加载。但是,在需要确定关联关系的完整性或避免意外行为时,应禁用懒加载。









