MyBatis的关联查询

Posted 敷衍的对白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis的关联查询相关的知识,希望对你有一定的参考价值。

一.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多对多关系

一个学生可以选多门课程,而一门课程可以由多个学生选择,这就是一个典型的多对多关联关系。所谓多对多关系,其实是由两个互反的一对多关系组成。即多对多关系都会通过一个中间表来建立,例如选课表。学生对于选课表来说是一对多,课程对于选课表来说也是一对多。

 

以上是关于MyBatis的关联查询的主要内容,如果未能解决你的问题,请参考以下文章

mybatis关联查询中 列名重复的解决办法

MyBatis高级篇 - 关联查询(一对多)

Mybatis关联查询(嵌套查询)

mybatis中的关联查询

MyBatis的关联查询

MyBatis关联查询 (association) 时遇到的某些问题/mybatis映射