



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
现在学习完了这几种映射关系,但是有点乱,这里来小结一下。关键是表之间如何产生映射关系,以及产生的表的结构。1、一对一映射:一对一是通过one-to-one标签来产生映射关系的,其实,如果单单说是建立两个表之间的关联,只要在一个映射文件中配置one-to-one标签就可以了,在另一个映射文件中,也做类似的配置,只会起到关联的作用,建立起双向的关联。这里举Person和IdCard的例子,IdCard类的映射文件如下:html view plaincopyprint?1. 2. 3. 4. 5. 6. 7. constrained=true指定了将person表的主键设置为id_card表的外键,这样就建立起了两个表的关联,若不指定,两个表就是孤立的,互相没有关系。 建立表的ddl语句如下:sql view plaincopyprint?1. CREATETABLEid_card(2. idint(11)NOTNULLAUTO_INCREMENT,3. Novarchar(255)DEFAULTNULL,4. PRIMARYKEY(id),5. KEYFK627C1FB4AEED3EC(id),6. CONSTRAINTFK627C1FB4AEED3ECFOREIGNKEY(id)REFERENCESperson(id)7. )ENGINE=InnoDBAUTO_INCREMENT=2DEFAULTCHARSET=gbkCREATE TABLE id_card ( id int(11) NOT NULL AUTO_INCREMENT, No varchar(255) DEFAULT NULL, PRIMARY KEY (id), KEY FK627C1FB4AEED3EC (id), CONSTRAINT FK627C1FB4AEED3EC FOREIGN KEY (id) REFERENCES person (id) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=gbk在Person类的映射文件中可以不指定one-to-one标签,但那样建立起来的是单向的映射关系,即从id_card表可以映射到person表,但是反之就不行。这在通过person表查询id_card表时,不能查询。如果要让person关联到id_card那么就要在Person类的映射文件中,也配置一下one-to-one标签了。 2、多对一映射:建立两个表的映射的关系,都是通过建立外键来关联的,多对一也不例外,例如员工和部门的关系属于多对一的关系,多个员工属于同一个部门,所以在部门类中要有一个员工的集合属性。要实现双向映射的话,还必须在员工类中有部门的属性。如果单单建立两个表之间的关联,也像一对一一样,只需要在一个映射文件中配置就可以了,但是,多对一的映射文件的配置不像一对一那样简单,相对复杂的是在“一”这个角色,不是只使用一个就可以了的,看下面这个配置“一”角色的例子:html view plaincopyprint?1. 部门类的映射文件:2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 部门类的映射文件:它是配置了一个set标签,在标签中指定了要关联的类和在要关联类中的外键。“一”这一方是通过这种方式建立和“多”的关联的。那么,要是用“多”那一方怎么建立关联呢?看下例: html view plaincopyprint?1. 员工类的映射文件:2. 3. 4. 5. 6. 7. 8. 9. 员工类的映射文件:使用标签也可以建立起和部门表的关联,而且这种方式要简洁很多。不管用哪种方式建立关联,所得的数据库的结果是一样的,如本例中,建立的员工表的ddl语句为: sql view plaincopyprint?1. CREATETABLEemployee(2. idint(11)NOTNULLAUTO_INCREMENT,3. namevarchar(255)DEFAULTNULL,4. depart_idint(11)DEFAULTNULL,5. PRIMARYKEY(id),6. KEYFK4AFD4ACE972E0614(depart_id),7. CONSTRAINTFK4AFD4ACE972E0614FOREIGNKEY(depart_id)REFERENCESdepartment(id)8. )ENGINE=InnoDBAUTO_INCREMENT=3DEFAULTCHARSET=gbkCREATE TABLE employee ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(255) DEFAULT NULL, depart_id int(11) DEFAULT NULL, PRIMARY KEY (id), KEY FK4AFD4ACE972E0614 (depart_id), CONSTRAINT FK4AFD4ACE972E0614 FOREIGN KEY (depart_id) REFERENCES department (id) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=gbk3、多对多映射:因为是多对多的关系,只用两个表是无法表示这种关系的,所以建立出来第三方表,只保存这两个表之间的关系,这样就把多对多映射转换成了两个多对一映射。如果单单是建立两个表之间的关联,和上两种情况一样,只需要在其中一个映射文件中配置即可,但是要建立双向映射的话,就要在两个映射文件中都配置关联了。这里我们举老师和学生的例子,他们的映射文件分别如下:html view plaincopyprint?1. 2. 3. 4. 5. 6. 7. 8. 9. 10. html view plaincopyprint?1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 是不是看起来和多对一的映射文件有些类似?但是,不同的是,这里出现了第三个表:teacher_student,表中只有两列:teacher_id和student_id,并且分别是teacher和student表的外键,建立的teacher_student表就是老师和学生表之间的关联,其建立的ddl语句为: sql view plaincopyprint?1. CREATETABLEteacher_student(2. teacher_idint(11)NOTNULL,3. student_idint(11)NOTNULL,4. PRIMARYKEY(student_id,teacher_id),5. KEYFK2E2EF2DEDE6A927E(teacher_id),6. KEYFK2E2EF2DECDCF47DE(student_id),7. CONSTRAINTFK2E2EF2DECDCF47DEFOREIGNKEY(student_id)REFERENCESstudent(id),8. CONSTRAINTFK2E2EF2DEDE6A927EFOREIGNKEY(teacher_id)REFERENCESteacher(id)9. )ENGINE=InnoDBDEFAULTCHARSET=gbkCREATE TABLE teacher_student ( teacher_id int(11) NOT NULL, student_id int(11) NOT NULL, PRIMARY KEY (student_id,teacher_id), KEY FK2E2EF2DEDE6A927E (teacher_id), KEY FK2E2EF2DECDCF47DE (student_id), CONSTRAINT FK2E2EF2DECDCF47DE FOREIGN KEY (student_id) REFERENCES student (id), CONSTRAINT FK2E2EF2DEDE6A927E FOREIGN KEY (teacher_id) REFERENCES teacher (id) ENGINE=InnoD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业产品设计及研发流程
- 工业4.0背景下的智能制造技术应用
- 工业4.0智能工厂的构建与实施
- 工业4.0时代的智能制造模式
- 岩石结构与其中的物理学知识
- 工业4.0背景下白水泥行业的智能制造探索
- 少数民族地区旅游资源开发与文化传承
- 工业4.0下的智能分拣技术探索
- 展览建筑的光影艺术与科技创新
- 少数民族文化传承研究
- 2024中考复习必背初中英语单词词汇表(苏教译林版)
- 大坝模型制作方案
- 2024年北京门头沟区社区工作者招聘笔试参考题库附带答案详解
- 气缸的工作原理课件
- 易罐疗法及其作用
- 过敏性皮炎大查房课件
- 老年健康与老年服务名词术语
- 2023年秋季国家开放大学-02154-数据库应用技术期末考试题带答案
- 山东省德州市宁津县房地产市场报告
- 中华护理学会精神科专科护士理论考试试题
- 新能源电动汽车操作安全
评论
0/150
提交评论