懒加载

懒加载的配置以及原理

懒加载的配置

    懒加载,就是需要使用到数据的时候才进行加载,不需要用到数据的时候就不加载。
    好处:先从单表查询,需要时再从关联表去关联拆线呢,大大提高数据库的性能,因为单表查询远远高于多表查询的速度。
    坏处:因为只有遇到数据的时候,才会进行数据库查询,这样在大批量数据查询的时候,因为查询工作也要消耗时间。所以可能会造成用户的等待时间变长。

我们开启懒加载的步骤一共有两步:

  1. 在xml文件中配置setting开启懒记载
  2. 书写函数和resultMap

开启懒加载

<settings>

       <!--开启懒加载-->
       <setting name="lazyLoadingEnabled" value="true"/>
       <!--将积极加载改为按需加载-->
       <setting name="aggressiveLazyLoading" value="false"/>
       <!-- 开启驼峰命名-->
       <setting name="mapUnderscoreToCamelCase" value="true"/>
       <!--解决toString方法触发懒加载-->
       <setting name="lazyLoadTriggerMethods" value=""/>
   </settings>

书写函数以及resultMap

其中fetchType的意思是用哪种方式加载函数,lazy是懒加载,eager是紧急加载。select是调用的方法名字。column的意思是根据主体表中的哪个字段去关联查询附表。property的意思是实体类中的属性。

 <resultMap id="StudentLazy" type="Student">
        <id property="sId" column="s_id"></id>
        <result property="sName" column="s_name"></result>
        <result property="sSex" column="s_sex"></result>
        <collection property="scoreList" column="s_id" select="com.aaa.Dao.ScoreDao.findScoreBysId" fetchType="lazy"></collection>

    </resultMap>


    <select id="findAllStudentLazy" resultMap="StudentLazy" >
      select * from student
    </select>

调用的函数

 <select id="findScoreBysId" resultType="Score">
        select * from score where s_id=#{sId}
    </select>

懒加载禁用无关tostring等方法触发配置:

<!--解决toString方法触发懒加载-->
        <setting name="lazyLoadTriggerMethods" value=""/>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值