ToB企服应用市场:ToB评测及商务社交产业平台

标题: 16. MyBatis的耽误加载机制是什么?怎样配置?有哪些优缺点? [打印本页]

作者: 欢乐狗    时间: 2024-9-15 15:32
标题: 16. MyBatis的耽误加载机制是什么?怎样配置?有哪些优缺点?


耽误加载(Lazy Loading)是MyBatis提供的一种机制,用于优化数据库查询性能。在启用耽误加载时,某些关联对象或集合只有在被实际访问时才会触发数据库查询,而不是在主对象加载时立刻加载。这种机制可以镌汰不必要的数据库查询,特别是在处理多表关联关系时非常有用。


耽误加载的配置

在MyBatis中,耽误加载可以通过配置文件中的设置来启用。重要有以下几个步骤:


1. 启用全局耽误加载

在MyBatis的全局配置中,通过lazyLoadingEnabled属性来启用耽误加载。
  1. <configuration>
  2.    <settings>
  3.        <!-- 启用延迟加载 -->
  4.        <setting name="lazyLoadingEnabled" value="true"/>
  5.        <!-- 启用全局的关联对象延迟加载 -->
  6.        <setting name="aggressiveLazyLoading" value="false"/>
  7.    </settings>
  8. </configuration>
复制代码



2. 在resultMap中配置耽误加载

通过在resultMap中配置<association>或<collection>标签的fetchType属性来控制具体的耽误加载行为。
  1. <resultMap id="userResultMap" type="User">
  2.    <id property="id" column="id"/>
  3.    <result property="username" column="username"/>
  4.    <!-- 一对一关联的延迟加载 -->
  5.    <association property="address" column="address_id"
  6.                 javaType="Address" select="selectAddressById" fetchType="lazy"/>
  7.    <!-- 一对多关联的延迟加载 -->
  8.    <collection property="orders" ofType="Order"
  9.                select="selectOrdersByUserId" fetchType="lazy"/>
  10. </resultMap>
复制代码



耽误加载的优缺点



优点



缺点



总结

MyBatis的耽误加载机制通过在必要时才加载关联数据,可以有用镌汰不必要的数据库访问和资源消耗,从而提升性能。配置耽误加载通常涉及全局配置和resultMap中的fetchType设置。

在实际应用中,耽误加载可以帮助优化数据库访问,但也必要仔细设计和测试,以避免潜伏的性能题目。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4