就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称懒加载.
好处:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能
坏处:因为只有当需要用到数据时,才会进行数据库查询,所以可能造成用户等待时间变长,造成用户体验下降。

model

public class User implements Serializable {private Integer id;private String username;private String address;private String sex;private Date birthday;//一对多关系映射:主表实体应该包含从表实体的集合引用private List<Account> accounts;
}public class Account implements Serializable {private Integer id;private Integer uid;private Double money;//从表实体应该包含一个主表实体的对象引用private User user;
}

interface

public interface IUserDao {List<User> findAll();
}
public interface IAccountDao {List<Account> findAccountByUid(Integer uid);
}

Dao.xml

IUserDao.xml

<mapper namespace="com.itheima.dao.IUserDao"><!-- 定义User的resultMap--><resultMap id="userAccountMap" type="user"><id property="id" column="id"></id><result property="username" column="username"></result><result property="address" column="address"></result><result property="sex" column="sex"></result><result property="birthday" column="birthday"></result><!-- 配置user对象中accounts集合的映射 --><collection property="accounts" ofType="account" select="com.itheima.dao.IAccountDao.findAccountByUid" column="id"></collection></resultMap><!-- 查询所有 --><select id="findAll" resultMap="userAccountMap">select * from user</select>
</mapper>

IAccountDao.xml

<select id="findAccountByUid" resultType="account">select * from account where uid = #{uid}
</select>

SqlMapConfig.xml

<settings><!--开启Mybatis支持延迟加载--><setting name="lazyLoadingEnabled" value="true"/><setting name="aggressiveLazyLoading" value="false"></setting>
</settings>

mybatis 关联查询 延迟加载相关推荐

  1. MyBatis基础:MyBatis关联查询(4)

    1. MyBatis关联查询简介 MyBatis中级联分为3中:association.collection及discriminator. ◊ association:一对一关联 ◊ collecti ...

  2. MyBatis关联查询、多条件查询

    MyBatis关联查询.多条件查询 1.一对一查询 任务需求; 根据班级的信息查询出教师的相关信息 1.数据库表的设计 班级表: 教师表: 2.实体类的设计 班级表: public class Cla ...

  3. Mybatis关联查询的两种方式

    首先要了解对象的三种关联方式 *数据库表的关联关系有三种,一对一,一对多,多对多 一对一   是通过在任意一方的主键,引入对方主键作为外键来实现的,就是说主键与外键为同一字段 一对多   是通过在&q ...

  4. mybatis关联查询

    一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...

  5. java mybtis关联查询,7.MyBatis 关联查询(一对一)

    1 关联查询映射 1.1 分析数据模型 思路 :每张表记录的数据内容 每张表重要的字段(主键,外键,非空字段) 表与表之间的关系(外键关系) 表与表之间的业务关系(建立在某个业务意义基础上去分析) 如 ...

  6. Mybatis 关联查询(一对一与一对多)

    数据库表与表之间的关系: 1.一对一查询 需求:查询所有订单信息,关联查询下单用户信息. 注意:因为一个订单信息只会是一个人下的订单,所以从查询订单信息出发关联查询用户信息为一对一查询.如果从用户信息 ...

  7. mybatis关联查询字段重复问题

    参考地址:https://blog.csdn.net/khuangz/article/details/78207722 1.多表查询时,当列id重名时,mybatis会默认使用查询出的第一个id列(另 ...

  8. MyBatis关联查询,表字段相同,resultMap映射问题的解决办法

    问题描述:在使用mybatis进行多表联合查询时,如果两张表中的字段名称形同,会出现无法正常映射的问题. 问题解决办法:在查询时,给重复的字段 起别名,然后在resultMap中使用别名进行映射. 给 ...

  9. mybatis关联查询之一对多,多对一,以及多对多

    一.使用IDEA新建maven工程 二.引入mybatis以及相关的jar <!--版本仅供参考--><dependencies><dependency><g ...

最新文章

  1. iSCSI故障查询列表
  2. java字符串 删除指定字符的那些事
  3. SQL-必知必会-触发器
  4. win8.1远程桌面连接2008显示正在加密远程连接
  5. 使用PyQt来编写第一个Python GUI程序
  6. mysql读写分离实现_laravel 配置MySQL读写分离
  7. tftp上传下载命令
  8. PC平台最佳相片管理软件Picasa
  9. 苏州大学计算机专业考研报录比,【图片】18年苏州大学计算机872考研经验分享【苏州大学研究生吧】_百度贴吧...
  10. 在word中快速得到数学公式
  11. VMware ESXi 8.0 SLIC 2.6 macOS Unlocker (Oct 2022 GA)
  12. 经常手误怎么办?Delete键旁边是电源键
  13. matlab图像自动标注程序,基于MATLAB/GUI的图像语义自动标注系统
  14. 【小程序】766- 一文看懂小程序分享到朋友圈
  15. 微信小程序(uniapp)-实现分享图片给微信好友
  16. Linux | crontab定时任务及开机自启项
  17. 你想要的Window、Office办公快捷键都在这
  18. python 如何绘制分叉图
  19. 为debian linux配置upsd不间断电源守护
  20. 外企面试,哪有你想象的那么难!(已收割埃森哲、NTTDATA等8家外企offer)

热门文章

  1. 设计模式笔记 16. Mediator 中介者模式(行为型模式)
  2. (转载)使用 Anthem.NET 的常见回调(Callback)处理方式小结
  3. 49 - 算法 - Leetcode 112 路径总和 -二叉树递归 带参数一起递归
  4. java整段标记_聊聊JAVA GC系列(7) - 标记整理算法
  5. mysql 产品表 myisam好还是innodb好_mysql两种表存储结构myisam和innodb的性能比较测试...
  6. 知道一点怎么设直线方程_直线初步
  7. 从零开始学前端:css3新属性scss和less --- 今天你学习了吗?(CSS:Day22)
  8. 微课|中学生可以这样学Python(2.2.1节):算术运算符
  9. Python监视进程创建情况和系统服务状态
  10. python opencv调用cuda_Win10使用VS2019从源码编译OpenCV 4.4 + CUDA 11.0 + Cudnn 8.0 + python3