mybatis,一对一,一对多,多对多
Mybatis,一对一,一对多,多对多
mybatis我们经常要处理一些表与表之间的sql编写,处理一对一,一对多,以及多对多关系的查询语句,针对这些关联关系,我们用的最多的就是association标签和collection标签。
一对一关联映射(association)
- 场景
一个学生属于一个班级的一员(一对一),一个班级由多名学生组成(一对多)
一对一关系,从学生角度:学生对班级一对一
- 建表
CREATE TABLE `clazz` (
`clazz_id` int(5) NOT NULL AUTO_INCREMENT COMMENT '班级主键',
`clazz_name` varchar(10) DEFAULT NULL COMMENT '班级名称',
PRIMARY KEY (`clazz_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
/*Data for the table `clazz` */
insert into `clazz`(`clazz_id`,`clazz_name`) values
(1,'零一班'),
(2,'零二班');
CREATE TABLE `student` (
`student_id` int(5) NOT NULL AUTO_INCREMENT COMMENT '学生主键',
`student_name` varchar(10) DEFAULT NULL COMMENT '学生名字',
`student_clazz_id` int(5) DEFAULT NULL COMMENT '班级外键',
PRIMARY KEY (`student_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
/*Data for the table `student` */
insert into `student`(`student_id`,`student_name`,`student_clazz_id`) values
(1,'张晓明',1),
(2,'沙玉子',1),
(3,'王有为',2),
(4,'华小明',