MyBatis 的懒加载策略优缺点分别是什么?

MyBatis的懒加载策略主要有两种:

1. 对象懒加载:

当查询对象时,不立即加载其关联对象,只有在使用关联对象时才查询。

优点:

  • 初次查询性能高
  • 可以延迟加载非必需的关联对象

缺点:

  • 主对象每次查询都需要执行

2. 属性懒加载:

当查询对象时,只加载主对象,将关联属性声明为懒加载。
只有在使用关联属性时才加载关联对象。

优点:

  • 主对象可以缓存,提高效率
  • 有效控制加载范围

缺点:

  • 配置和维护稍微复杂一些

总结:

  • 对象懒加载:初次查询快,主对象每次查询
  • 属性懒加载:主对象可缓存,扬长避短

根据实际情况,选择以下策略:

  • 对象关系复杂,属性多:推荐对象懒加载
  • 关联属性 Occasionally used:属性懒加载
  • 需要缓存主对象:属性懒加载

总的来说,MyBatis的两种懒加载策略各有优缺点,在不同的场景下有其使用的地方。选择合适的懒加载策略可以很好地平衡效率和性能。