暑假学习组织实训想着来复习多对一、一对多的两种实现方式。多对一和一对多是比较难以理解的,所以想多理解理解
理解概念和环境搭建
1.多对一
- 多个学生对应一个老师
- 对于学生这把而言,关联老师,多个学生关联一个老师【多对一】
2.一对多
- 对于老师而言,集合,一个老师有很多学生【一对逗】
3.实现
1.环境搭建
CREATE TABLE `teacher` (
`id` INT(10) NOT NULL,
`name` VARCHAR(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT INTO teacher(`id`, `name`) VALUES (1, '秦老师');
CREATE TABLE `student` (
`id` INT(10) NOT NULL,
`name` VARCHAR(30) DEFAULT NULL,`student``student`
`tid` INT(10) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fktid` (`tid`),
CONSTRAINT `fktid` FOREIGN KEY (`tid`) REFERENCES `teacher` (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT INTO `student` (`id`, `name`, `tid`) VALUES ('1', '小明', '1');
INSERT INTO `student` (`id`, `name`, `tid`) VALUES ('2', '小红', '1');
INSERT INTO `student` (`id`, `name`, `tid`) VALUES ('3', '小张', '1');
INSERT INTO `student` (`id`, `name`, `tid`) VALUES ('4', '小李', '1');
INSERT INTO `student` (`id`, `name`, `tid`) VALUES ('5', '小王', '1');
数据库
若要自动增加主键 要在数据库管理工具navicat中勾选自增主键
两个关键字 insert中的
useGeneratedKeys=“true” keyProperty=“id”
resultMap id主键 result 其他字段
association 发送的额外sql
针对的关联属性配置,非集合类型
select 发送什么额外 SQL
column 发送额外 SQL 参数取上一条 SQL 哪个列的值
property 封装员工对象的什么属性
多对一
association执行两条sql 封装
一对多
collection