简单介绍:
在我们之前的案例中,我们进行了简单查询,条件产村,动态SQL的条件查询,但是这些操作都是在一张表中进行的,而在我们之前学习MySQL中还有一个很重要的操作就是多表查询操作,也就是说通过一张表中的某个字段的值,关联查询另一张表上的与之对应的一行数据。而在MyBatis中,对于这种在多个表之间的查询操作,也作出了相关的处理,也就是我么这次要介绍的MyBatis中的关联映射,通过这种关联映射,可以非常方便的处理表与表之间以及对象与对象之间的关系。
关联映射关系:
在关系型数据库中,表与表之间存在着三种基本的映射关系:一对一,一对多,多对多
一对一:
一对一就是一张数据表中的一条记录,最多对应另一张表中的另一条记录。比如一个学生只能对应一张学生证。但是在查询的时候,一对一并不是说用这一整条数据去查询零一条数据,就好像我们证明学生证是自己的时候并不需要把出生证明都拿出来,而是根据一条数据中的某一个列中的数据,比如,我们要找到自己的学生证,首先就需要知道自己的学号,通过学号去寻找自己的学生证。所谓的一对一,就是通过某一列的信息去找到另一张表中同样有这一列信息的一行数据。
一对多:
一对多就是一张数据表中的一条记录可以对应另一张表中的多条记录,但是另一张表中的记录只能与这张表中的一条记录有关。比如一个教室里可以有很多的学生,但是这个学生只能属于一个班级。
多对多:
多对多的关系是指一个数据表中的一条记录可以与另一张表中的任意数量的记录相关,另一张表中的一条记录也可以与本表中的任意条数据相关联。比如一个教师可以给很多的学生上课,一个学生也可以上很多老师的课。
在Java中描述数据之间的关系:
之前我们的说明和图示都是对数据库中的数据的描述,而在Java表中要体现出这种数据相互指向的效果,可以通过类与属性之间的关系进行体现。其实就是使对象的属性与另一个对象的属性相互关联。
一对一:
在本类中定义与之关联的类的对象做为属性。比如在A类中定义B类对象作为属性,在B类中定义A类为属性。形成一种互相包含的属性
一对多:
就是一个A类对象对应多个B类对象的情况。比如,在A类中定义一个B类对象的集合作为A类的属性;在B类中定义A类对象a多为B类的属性。
多对多:
在两个互相关联的类中,都可以定义多个与之关联的类的对象。例如,在A类中定义B类对象的集合作为A的属性,在B类中定义A类对象的集合作为B类的属性。
以上就是在Java中体现出多表映射关系的实例,在下一章节,我们会详细的介绍每一种映射关系的具体实现和代码测试。