学习笔记—Mybatis中的延迟加载

Mybatis中的延迟加载

在谈论什么是延迟加载之前,我们先看一个这样的问题。

  • 问题:在一对多中,当我们有一个用户,它有100个账户。
    在查询用户的时候,要不要把关联的账户查出来?
    在查询账户的时候,要不要把关联的用户查出来?
    如果把关联的账户或用户一起查出来了,但又不需要,那么必要会造成空间上的浪费。

解决方法:

在查询用户时,用户下的账户信息应该是,什么时候使用,什么时候查询的。
在查询账户时,账户的所属用户信息应该是随着账户查询时一起查询出来。
这就是延迟加载的思想。

什么是延迟加载

  • 在真正使用数据时才发起查询,不用的时候不查询。按需加载(懒加载)

什么是立即加载

  • 不管用不用,只要一调用方法,马上发起查询。

什么时候用延迟加载,什么时候用立即加载

  • 在对应的四种表关系中:一对多,多对一,一对一,多对多
    • 一对多,多对多:通常情况下我们都是采用延迟加载。
    • 多对一,一对一:通常情况下我们都是采用立即加载。

使用延迟加载步骤:

1.第一步:让Mybatis框架支持延迟加载(在SqlMapConfig.xml中配置)
在这里插入图片描述
2.第二步:配置什么地方使用延迟加载(在IAccountDao.xml中配置)
注意:要有配置的方法(这里在IUserDao中有fingbyId的方法,且在IUserDao.xml中有配置好)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44830363/article/details/105360355
今日推荐