注: resultType和resultMap是二选一的

1. resultMap:自定义某个javeBean的封装规则

image.png

勘误: 上图中type是指mysql结果要映射的JavaBean类

2. 当javaBean中的属性是类时

|

2.1 在原数据表中新增一列

alter table tbl_employee add column d_id int(11);

2.2 在数据表中新增外键约束

alter table tbl_employee add constraint fk_emp_dpt foreign key(id) reference tbl_dpt(id);
// 在tbl_employee表中新增外键 fk_emp_dpt
// 外键的关系是:tbl_employee.id=tbl_dpt.id; | | —- | |

2.3 需要查询的sql语句是:

select * from tbl_employee e and tbl_dpt d
where e.d_id=d.id and d.id=? | | association.png
|

3. 分步查询+延迟加载

mybatis_conf.xml全局配置 + employeeMapper.xml的配置

场景一:一对一
查询Employee的同时查询员工对应的部门
Employee===Department
一个员工有与之对应的部门信息;
id last_name gender d_id did dept_name (private Department dept;)
—>

分步查询.png
测试延迟加载的Java方法:
image.png

场景2: 一对多非分布查询: 一个部门下有多个员工
collection标签, ofType属性

一对多.png

一对多时的 分布查询

fenduan.png

增加条件查询:

image.png