mybatis 关联查询 延迟加载
就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称懒加载.
好处:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能
坏处:因为只有当需要用到数据时,才会进行数据库查询,所以可能造成用户等待时间变长,造成用户体验下降。
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 关联查询 延迟加载相关推荐
- MyBatis基础:MyBatis关联查询(4)
1. MyBatis关联查询简介 MyBatis中级联分为3中:association.collection及discriminator. ◊ association:一对一关联 ◊ collecti ...
- MyBatis关联查询、多条件查询
MyBatis关联查询.多条件查询 1.一对一查询 任务需求; 根据班级的信息查询出教师的相关信息 1.数据库表的设计 班级表: 教师表: 2.实体类的设计 班级表: public class Cla ...
- Mybatis关联查询的两种方式
首先要了解对象的三种关联方式 *数据库表的关联关系有三种,一对一,一对多,多对多 一对一 是通过在任意一方的主键,引入对方主键作为外键来实现的,就是说主键与外键为同一字段 一对多 是通过在&q ...
- mybatis关联查询
一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...
- java mybtis关联查询,7.MyBatis 关联查询(一对一)
1 关联查询映射 1.1 分析数据模型 思路 :每张表记录的数据内容 每张表重要的字段(主键,外键,非空字段) 表与表之间的关系(外键关系) 表与表之间的业务关系(建立在某个业务意义基础上去分析) 如 ...
- Mybatis 关联查询(一对一与一对多)
数据库表与表之间的关系: 1.一对一查询 需求:查询所有订单信息,关联查询下单用户信息. 注意:因为一个订单信息只会是一个人下的订单,所以从查询订单信息出发关联查询用户信息为一对一查询.如果从用户信息 ...
- mybatis关联查询字段重复问题
参考地址:https://blog.csdn.net/khuangz/article/details/78207722 1.多表查询时,当列id重名时,mybatis会默认使用查询出的第一个id列(另 ...
- MyBatis关联查询,表字段相同,resultMap映射问题的解决办法
问题描述:在使用mybatis进行多表联合查询时,如果两张表中的字段名称形同,会出现无法正常映射的问题. 问题解决办法:在查询时,给重复的字段 起别名,然后在resultMap中使用别名进行映射. 给 ...
- mybatis关联查询之一对多,多对一,以及多对多
一.使用IDEA新建maven工程 二.引入mybatis以及相关的jar <!--版本仅供参考--><dependencies><dependency><g ...
最新文章
- iSCSI故障查询列表
- java字符串 删除指定字符的那些事
- SQL-必知必会-触发器
- win8.1远程桌面连接2008显示正在加密远程连接
- 使用PyQt来编写第一个Python GUI程序
- mysql读写分离实现_laravel 配置MySQL读写分离
- tftp上传下载命令
- PC平台最佳相片管理软件Picasa
- 苏州大学计算机专业考研报录比,【图片】18年苏州大学计算机872考研经验分享【苏州大学研究生吧】_百度贴吧...
- 在word中快速得到数学公式
- VMware ESXi 8.0 SLIC 2.6 macOS Unlocker (Oct 2022 GA)
- 经常手误怎么办?Delete键旁边是电源键
- matlab图像自动标注程序,基于MATLAB/GUI的图像语义自动标注系统
- 【小程序】766- 一文看懂小程序分享到朋友圈
- 微信小程序(uniapp)-实现分享图片给微信好友
- Linux | crontab定时任务及开机自启项
- 你想要的Window、Office办公快捷键都在这
- python 如何绘制分叉图
- 为debian linux配置upsd不间断电源守护
- 外企面试,哪有你想象的那么难!(已收割埃森哲、NTTDATA等8家外企offer)
热门文章
- 设计模式笔记 16. Mediator 中介者模式(行为型模式)
- (转载)使用 Anthem.NET 的常见回调(Callback)处理方式小结
- 49 - 算法 - Leetcode 112 路径总和 -二叉树递归 带参数一起递归
- java整段标记_聊聊JAVA GC系列(7) - 标记整理算法
- mysql 产品表 myisam好还是innodb好_mysql两种表存储结构myisam和innodb的性能比较测试...
- 知道一点怎么设直线方程_直线初步
- 从零开始学前端:css3新属性scss和less --- 今天你学习了吗?(CSS:Day22)
- 微课|中学生可以这样学Python(2.2.1节):算术运算符
- Python监视进程创建情况和系统服务状态
- python opencv调用cuda_Win10使用VS2019从源码编译OpenCV 4.4 + CUDA 11.0 + Cudnn 8.0 + python3