延迟加载

本文介绍如何在MyBatis中实现延迟加载功能,通过配置fetchType属性或使用全局设置来减少内存消耗并提高应用程序性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

两步走:

1.开启 延迟加载:  

            两种方法:

                       1.第一种是在对应的<collection>或<association>标签上指定fetchType属性值为“lazy”。

                 

 <collection property="nodes" column="id"
 
  ofType="com.elim.learn.mybatis.model.SysWfNode" select="selectNodes" fetchType="lazy"/>

                        2.在配置文件中设置:

                             

<settings>
    <!-- 打开延迟加载 的开关 -->
    <setting name="lazyLoadingEnabled" value="true"/>
    <!-- 将积极加载改为消极加载即按需要加载  积极加载指访问一个加载一个对象将所有对象都取出来-->
    <setting name="aggressiveLazyLoading" value="false"/>
</settings>

2.配置map:

             1.在配置association和collection标签中加入select和column

               <association property="user" javaType="vo.User" select="findUserById" column="user_id">

</association>

                  select决定了当访问该对象时进行怎样的查询

                 column决定了当进行关联的列


测试代码:    

              List<Orders> c=ordermapaper.yanchi();
 
//遍历订单
for(Orders orders:c){
User user=orders.getUser();  //当进行遍历时才进行加载
System.out.println(user);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值