资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Struts2+Hibernate+Spring,JavaEE,企业级项目开发,单元,四 人事管理,任务,3,部门信息管理,Struts2+Hibernate+SpringJavaEE,1,任务简介,2,任务分析,3,相关支撑知识,4,任务小结,目录页,第,1,页,任务,3,部门信息管理,1任务简介2任务分析3相关支撑知识4任务小结目录页第1页任务,过渡页,第,2,页,过渡页,任务简介,过渡页第2页过渡页任务简介,任务,3,部门信息管理,任务简介,本任务的目标是学习Hibernate的数据关联的配置,,本任务,一对一关联,一对多关联,多对多关联,应用数据关联配置,实现部门信息管理,第,3,页,任务3 部门信息管理任务简介本任务的目标是学习Hibern,过渡页,第,4,页,过渡页,任务分析,过渡页第4页过渡页任务分析,任务,3,部门信息管理,任务分析,数据库中实体的关联关系有三种:一对一,一对多和多对多,在Hibernate在映射文件中配置关联关系,非常的灵活,Hibernate中关联关系主要在*.hbm.xml中进行配置,部门信息管理包括添加部门、删除部门,第,5,页,任务3 部门信息管理任务分析数据库中实体的关联关系有三种,过渡页,第,6,页,过渡页,相关支撑知识,过渡页第6页过渡页相关支撑知识,相关支撑知识,一对一关联指两个对象之间是一对一的关系,Hibernate中有两种映射一对一关联关系的实现方式:,共享主键是限制两个数据表的主键使用相同的值,通过主键形成一对一映射关系;,惟一外键是一个表的外键和另一个表的惟一主键对应形成一对一映射关系。,第,7,页,一对一关联,1,一,数据关联,任务,3,部门信息管理,相关支撑知识第7页一对一关联1一任务3 部门信息管理,相关支撑知识,第,8,页,一对一关联,1,任务,3,部门信息管理,一,数据关联,一对一共享主键实例,:,一个班级对应一个班长,/,定义实体类StuClass.java,public class StuClass implements Serializable,private int id;,private String name;,/表示班级的班长,private StuLeader leader;,.,/一组set/get属性方法,/,定义实体类,StuLeader.java,public class StuLeader,private int id;,private String name;,private StuClass stuClass;,.,/一组set/get属性方法,实体类,相关支撑知识第8页一对一关联1任务3 部门信息管理一 一对,相关支撑知识,第,9,页,一对一关联,1,任务,3,部门信息管理,一,数据关联,一对一共享主键实例,:,一个班级对应一个班长,StuClass.hbm.xml,的配置代码如下:,StuLeader.hbm.xml的配置代码如下:,实体映射文件,相关支撑知识第9页一对一关联1任务3 部门信息管理一 一对,相关支撑知识,第,10,页,一对一关联,1,任务,3,部门信息管理,一,数据关联,一对一共享主键实例,:,一个班级对应一个班长,public class OneToOoneTest,public static void main(String args),Session session=HibernateSessionFactory.getSession();,Transaction transaction=session.beginTransaction();,StuClass sc=(StuClass)session.get(StuClass.class,1);,StuLeader sl=(StuLeader)session.get(StuLeader.class,1);,mit();,System.out.println(sc.getName()+sl.getLeaderName();,测试类,相关支撑知识第10页一对一关联1任务3 部门信息管理一 一,相关支撑知识,一对多关系很常见,例如班级与学生、部门与员工等的关系就是常见的一对多关系,一对多关联映射主要使用及来实现映射配置,第,11,页,一对多关联,2,一,数据关联,任务,3,部门信息管理,相关支撑知识一对多关系很常见,例如班级与学生、部门与员工等的,相关支撑知识,第,12,页,一对多关联,2,任务,3,部门信息管理,一,数据关联,一对多实例,:,一个班级对应多个学生,/,定义实体类StuClass.java,public class StuClass implements Serializable,private int id;,private String name;,private int num;,/一个班级可能会有多个学生,private Set students=new HashSet();,/一组set/get属性方法,/,定义实体类,Student.java,public class Student,private int id;,private String stuId;,private String stuname;,/一个学生只属于一个班级,private StuClass stuclass;,/一组set/get属性方法,实体类,相关支撑知识第12页一对多关联2任务3 部门信息管理一 一,相关支撑知识,第,13,页,一对多关联,2,任务,3,部门信息管理,一,数据关联,一对多实例,:,一个班级对应多个学生,StuClass.hbm.xml,的代码,Student.hbm.xml,的代码,实体映射,文件,相关支撑知识第13页一对多关联2任务3 部门信息管理一 一,相关支撑知识,第,14,页,一对多关联,2,任务,3,部门信息管理,一,数据关联,一对多实例,:,一个班级对应多个学生,public class OneToManyTest,public static void main(String args),Session session=,HibernateSessionFactory.getSession();,Transaction transaction=,session.beginTransaction();,StuClass stuclass=new StuClass();,stuclass.setName(软件121);,stuclass.setNum(30);,Student stu1=new Student();,stu1.setStuId(1108203311);,stu1.setStuname(王五);,stu1.setStuclass(stuclass);,Student stu2=new Student();,stu2.setStuId(1108203312);,stu2.setStuname(张红);,stu2.setStuclass(stuclass);,session.save(stu1);,session.save(stu2);,mit();,测试类,相关支撑知识第14页一对多关联2任务3 部门信息管理一 一,相关支撑知识,两个表的多对多关系,需要借助第三个连接表来实现,否则就会出现冗余,在查询结果中就会遇到这种情况。,多对多关系在日常应用中比较普遍,如学生和课程、学生和老师、商品和分类等之间的关系。,第,15,页,多对多关联,3,一,数据关联,任务,3,部门信息管理,相关支撑知识两个表的多对多关系,需要借助第三个连接表来实现,,相关支撑知识,第,16,页,多对多关联,3,任务,3,部门信息管理,一,数据关联,多对多实例,:,多个学生对应多个老师,/,定义实体类Student.java,public class Student,private int id;,private String stuId;,private String stuname;,/一个学生只属于一个班级,private StuClass stuclass,;,/一个学生可能有多个老师,private Set teachers=new HashSet();,/一组set/get属性方法,/,定义教师类,Teacher.java,public class Teacher,private int id;,private String teachId;,private String teacherName;,/一个老师可教授多个学生,private Set students=new HashSet();,/一组set/get属性方法,实体类,相关支撑知识第16页多对多关联3任务3 部门信息管理一 多,相关支撑知识,第,17,页,多对多关联,3,任务,3,部门信息管理,一,数据关联,多对多实例,:,多个学生对应多个老师,Student,的映射文件,Student.hbm.xml,.,Teacher,的映射文件,Teacher.hbm.xml,.,实体映射,文件,相关支撑知识第17页多对多关联3任务3 部门信息管理一 多,相关支撑知识,第,18,页,多对多关联,3,任务,3,部门信息管理,一,数据关联,多对多实例,:,多个学生对应多个老师,public class ManyToManyTest,public static void main(String args),Session session=,HibernateSessionFactory.getSession();,Transaction transaction=,session.beginTransaction();,StuClass stuclass=,(StuClass)session.get(StuClass.class,1);,System.out.println(stuclass.getName();,Student stu1=new Student();,stu1.setStuId(1308201101);,stu1.setStuname(张三);,stu1.setStuclass(stuclass);,Teacher teach1=new Teacher();,teach1.setTeacherName(邓小志);,teach1.setTeachId(J00001);,Set teachs=new Ha
展开阅读全文