一.MyBatis的关联查询
在关系型数据库中,我们经常要处理一对多,多对一和多对多的关系。
(1).MyBatis一对一关联查询总结
MyBatis中使用association标签来解决一对一的关联查询,association标签可用的属性如下:
property:对象属性的名称
javaType:对象属性的类型
column:所对应的外键字段名称
select:使用另一个查询封装的结果
(2)关联映射一对多
MyBatis中使用collection标签来解决一对多的关联查询,ofType属性指定集合中元素的对象类型
列:一个老师对应多名学生
一个部门对应多个员工
Xml主要代码:
(3).关联映射多对一
反过来,多个人对一个国家。每个人只对一个国家。当然不考虑双重国籍的吵架问题。
由于查询多对象时,也是一个一个查的。所以:一对一关联查询的实现方式与多对一的实现方式是相同的
1)实体类稍有变化:
国家没有了Set<People>人成员变量,人有了国家成员变量
Dao接口
mapper.xml配置文件
4)测试输出
备注:
Country类中可以不删除Set<People>peoples ; 成员变量。
People类中可以一直有Countrycountry;成员变量。
去掉是为了便于理解一对多、多对一
(4)多对多关系
一个学生可以选多门课程,而一门课程可以由多个学生选择,这就是一个典型的多对多关联关系。所谓多对多关系,其实是由两个互反的一对多关系组成。即多对多关系都会通过一个中间表来建立,例如选课表。学生对于选课表来说是一对多,课程对于选课表来说也是一对多。