MyBatis框架一对一,多对多的关联

155 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第14天,点击查看活动详情

继续上篇文章,再说说mybatis的一对一和多对多,之前自学mybatis框架,但实在搞不明白这一对一、多对多之间的关系,前段时间,自己开发了个小项目,用到了mybatis,才算搞明白了,分享给大家

3. 一对一关联

一对一关联:一个班级只有一个授课老师,一个老师也只为一个班级授课。

一个老师辅导一个学生,一个学生只请教一个老师.学生和老师是一对一.

image.png

一对一是在主实体类中添加需要关联的实体类作为属性,再配合映射文件的ResultMap的association来实现

实体类:

image.png

接口:

image.png

mapper.xml

image.png

4.  多对多关联

多对多关联:园区划线的车位和园区的每一辆车.任意一个车位可以停任意一辆车.任意一车辆车可以停在任意一个车位上.

多对多关联中,需要通过中间表化解关联关系。中间表描述两张主键表的关联。中间表没有对应的实体类。Mapper.xml文件中也没有中间表的对应标签描述,只是在查询语句中使用中间表来进行关联。

image.png

实体类:

image.png

接口:

image.png

Mapper.xml

image.png

总结:无论是什么关联关系,如果某方持有另一方的集合,则使用< collection>标签完成映射,如果某方持有另一方的对象,则使用< association>标签完成映射。