JAVA学习文档03关联映射.docx
- 文档编号:11687547
- 上传时间:2023-03-30
- 格式:DOCX
- 页数:12
- 大小:85.42KB
JAVA学习文档03关联映射.docx
《JAVA学习文档03关联映射.docx》由会员分享,可在线阅读,更多相关《JAVA学习文档03关联映射.docx(12页珍藏版)》请在冰豆网上搜索。
JAVA学习文档03关联映射
目录
1知识点1
1.1上次课程的主要知识点1
1.2本次预计讲解的知识点2
2具体内容2
2.1多对一/一对多关联2
2.2cascade和inverse7
2.2.1cascade7
2.2.2inverse7
2.3多对多关联8
3总结13
4作业13
课程名称:
03-关联映射
1知识点
1.1上次课程的主要知识点
1.2本次预计讲解的知识点
1、关联映射
|-一对多onetomany
|-多对以manytoone
|-多对多manytomany
2具体内容
2.1manytoone
示例:
雇员表employee:
emp_idemp_namedept_id
部门表dept:
dept_iddept_name
publicclassEmployee{
privateIntegerempId;
privateStringempName;
privateDeptdept;
publicIntegergetEmpId(){
returnempId;
}
publicvoidsetEmpId(IntegerempId){
this.empId=empId;
}
publicStringgetEmpName(){
returnempName;
}
publicvoidsetEmpName(StringempName){
this.empName=empName;
}
publicDeptgetDept(){
returndept;
}
publicvoidsetDept(Deptdept){
this.dept=dept;
}
}
xmlversion='1.0'encoding='UTF-8'?
>
DOCTYPEhibernate-mappingPUBLIC
"-//Hibernate/HibernateMappingDTD3.0//EN"
"
2.2onetomany
publicclassDept{
privateIntegerdeptId;
privateStringdeptName;
//一对多
privateSetemployees=newHashSet();
publicIntegergetDeptId(){
returndeptId;
}
publicvoidsetDeptId(IntegerdeptId){
this.deptId=deptId;
}
publicStringgetDeptName(){
returndeptName;
}
publicvoidsetDeptName(StringdeptName){
this.deptName=deptName;
}
publicSetgetEmployees(){
returnemployees;
}
publicvoidsetEmployees(Setemployees){
this.employees=employees;
}
}
xmlversion='1.0'encoding='UTF-8'?
>
DOCTYPEhibernate-mappingPUBLIC
"-//Hibernate/HibernateMappingDTD3.0//EN"
"
2.3manytomany
接前面的示例:
添加表:
project:
pro_idpro_name
表用户关联项目:
emp_pro:
emp_idpro_id
publicclassProject{
privateIntegerproId;
privateStringproName;
privateSetemployees=newHashSet();
publicIntegergetProId(){
returnproId;
}
publicvoidsetProId(IntegerproId){
this.proId=proId;
}
publicStringgetProName(){
returnproName;
}
publicvoidsetProName(StringproName){
this.proName=proName;
}
publicSetgetEmployees(){
returnemployees;
}
publicvoidsetEmployees(Setemployees){
this.employees=employees;
}
}
xmlversion='1.0'encoding='UTF-8'?
>
DOCTYPEhibernate-mappingPUBLIC
"-//Hibernate/HibernateMappingDTD3.0//EN"
"
packagecom.whos.ssh.entity;
importjava.util.HashSet;
importjava.util.Set;
publicclassEmployee{
privateIntegerempId;
privateStringempName;
privateDeptdept;
privateSetprojects=newHashSet();
publicIntegergetEmpId(){
returnempId;
}
publicvoidsetEmpId(IntegerempId){
this.empId=empId;
}
publicStringgetEmpName(){
returnempName;
}
publicvoidsetEmpName(StringempName){
this.empName=empName;
}
publicDeptgetDept(){
returndept;
}
publicvoidsetDept(Deptdept){
this.dept=dept;
}
publicSetgetProjects(){
returnprojects;
}
publicvoidsetProjects(Setprojects){
this.projects=projects;
}
}
xmlversion='1.0'encoding='UTF-8'?
>
DOCTYPEhibernate-mappingPUBLIC
"-//Hibernate/HibernateMappingDTD3.0//EN"
"
Deptdept=newDept();
dept.setDeptId
(2);
Employeeemp_1=newEmployee();
emp_1.setEmpName("张三");
emp_1.setDept(dept);
Employeeemp_2=newEmployee();
emp_2.setEmpName("李四");
emp_2.setDept(dept);
Projectp1=newProject();
p1.setProName("项目1");
Projectp2=newProject();
p2.setProName("项目2");
p1.getEmployees().add(emp_2);
p2.getEmployees().add(emp_1);
p2.getEmployees().add(emp_2);
session.save(emp_1);
session.save(emp_2);
session.save(p1);
session.save(p2);
不建议使用多对多。
如果存在多对多关系,建议使用双向的多对一实现。
hibernate建议所有表都设主键。
3总结
4作业
数据库表关系如下:
班级表:
class_info
Class_id 班级ID
Class_name班级名称
学生表:
student_info
Student_id学生ID
Student_name学生姓名
科目表:
course_info
Course_id科目id
Course_name科目名称
选修表:
score_info
Student_id学生id
Course_id科目id
学生表和班级表建立多对一关联
班级表和学生表建立一对多关联
学生表和科目表建立多对多关联(中间表:
选修表)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 学习 文档 03 关联 映射