Struts2+Hibernate+SpringJavaEE企业级项目开发单元四人事管理—任务3部门信息管理峻苍好矛间元桑昆瓦蜒涝下觉烤陪鹅巧裙爪咀漓珊宵浅匠纱忿宽糕仿庄勤Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理1任务简介任务简介2任务分析任务分析3相关支撑知识相关支撑知识4任务小结任务小结目录页第1页任务3部门信息管理片某蜡册几篡孕婆疾掷锄渗膘奔英歉袱踢缕喜爹曾砰糟惦察犯刨秘囤撮谢Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理过渡页第2页过渡页任务简介蜀莉霄挣狸翻扁炕永订株阐矛厄拱趁帝衡兢缘爷壳睬齐阁剃蠕俭鲜距艇史Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理任务3部门信息管理任务简介本任务的目标是学习Hibernate的数据关联的配置,本任务p一对一关联p一对多关联p多对多关联p应用数据关联配置,实现部门信息管理第3页田灼玲择砾鬼哭冤颇拭两稳寂喻矢秒茂舜拉疽烛具醚卯呕绰阑星持搐晓繁Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理过渡页第4页过渡页任务分析律挤肘松艾乐炸针澡颗淡看交碉翱望瞬甫阜奉揉交佣隆煽担褥本豹余秋泪Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理任务3部门信息管理任务分析p数据库中实体的关联关系有三种:一对一,一对多和多对多p在Hibernate在映射文件中配置关联关系,非常的灵活pHibernate中关联关系主要在*.hbm.xml中进行配置p部门信息管理包括添加部门、删除部门第5页渴隅因沁普贤溪将鞋丰蜂倔鄂蔼叫鸿恨陨戒店屯楼罢批侮宜射眠场赛严鸡Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理过渡页第6页过渡页相关支撑知识饥腑孵惟着珍航邑睛贾伸从斗嚼窗崭镀汀酒误瓣路伍离耽汝剁佬余助粕诸Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理相关支撑知识p一对一关联指两个对象之间是一对一的关系,Hibernate中有两种映射一对一关联关系的实现方式:Ø共享主键是限制两个数据表的主键使用相同的值,通过主键形成一对一映射关系;Ø惟一外键是一个表的外键和另一个表的惟一主键对应形成一对一映射关系。
第7页一对一关联1 1一数据关联任务3部门信息管理骡岂岂裹妓乞襟闻延藩漂城椎瘁另甲休围冈辜宪娩吩盯宰储跪嚎券铱卧盼Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理相关支撑知识第8页一对一关联1 1任务3部门信息管理一数据关联 一对一共享主键实例一对一共享主键实例:一个班级对应一个班长一个班级对应一个班长// 定义实体类StuClass.javapublic class StuClass implements Serializable{private int id;private String name; //表示班级的班长 private StuLeader leader; ……. // 一组set/get属性方法} //定义实体类StuLeader.javapublic class StuLeader {private int id;private String name;private StuClass stuClass;……. // 一组set/get属性方法}实体类实体类谍测粹坊减鉴拭干博橡碳进渴楼索哦楚谴猛拥款汤趴使帐哼镶橡森监弓扰Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理相关支撑知识第9页一对一关联1 1任务3部门信息管理一数据关联 一对一共享主键实例一对一共享主键实例:一个班级对应一个班长一个班级对应一个班长StuClass.hbm.xml的配置代码如下:的配置代码如下: StuLeader.hbm.xml的配置代码如下:的配置代码如下: 实体映射文件实体映射文件惊燕息兆氛麦恰骏铣捶鼠屡稿坡抖止缚炙谬瞒绵玫滚痕喂鹰蹦臀商楼霖利Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理相关支撑知识第10页一对一关联1 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());}}测试类测试类浅矢兵琼滩忘糠导蛮弱进桂俏孝娜悯貉丧孩穷帅硷社城及切紫绒猪收凑唤Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理相关支撑知识p一对多关系很常见,例如班级与学生、部门与员工等的关系就是常见的一对多关系p一对多关联映射主要使用及来实现映射配置第11页一对多关联2 2一数据关联任务3部门信息管理甜挑泉笔娟负绕葛科塘腰枣渣呈荆汰息搓贝洗诞荡祭敝琼朵样骆正踪柏忱Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理相关支撑知识第12页一对多关联2 2任务3部门信息管理一数据关联 一对多实例一对多实例:一个班级对应多个学生一个班级对应多个学生//定义实体类StuClass.javapublic class StuClass implements Serializable{private int id;private String name;private int num; //一个班级可能会有多个学生private Set students=new HashSet(); …… // 一组set/get属性方法}//定义实体类Student.javapublic class Student {private int id;private String stuId;private String stuname; //一个学生只属于一个班级private StuClass stuclass; …… // 一组set/get属性方法}实体类实体类敞觅簧胁刃糕雁琳昭颜引火排靴赴吩岔吹咽话包戳涕远迫绦脱陋休掺氰质Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理相关支撑知识第13页一对多关联2 2任务3部门信息管理一数据关联 一对多实例一对多实例:一个班级对应多个学生一个班级对应多个学生StuClass.hbm.xml的代码的代码 Student.hbm.xml的代码的代码 实体映射文件实体映射文件监桑谴涛灌启银撮蜜渺锣性剑莱科欠斑哎刁衫痰户肿跪幕利喊综舀苏涎愁Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理相关支撑知识第14页一对多关联2 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(); }}测试类测试类尘掖渊荣织扯挎氰性双棕嘴嗣锭珐懦邓洲蹋炙薯转茶涵明畏腰烟剑庞哉吏Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理相关支撑知识p两个表的多对多关系,需要借助第三个连接表来实现,否则就会出现冗余,在查询结果中就会遇到这种情况。
p多对多关系在日常应用中比较普遍,如学生和课程、学生和老师、商品和分类等之间的关系第15页多对多关联3 3一数据关联任务3部门信息管理弱厨硒碴嵌卤审霄搐苹骄警妊监们弄廓帽世恐尹哨倪刑黑硫赚沤霹几饶徊Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理相关支撑知识第16页多对多关联3 3任务3部门信息管理一数据关联 多对多实例多对多实例:多个学生对应多个老师多个学生对应多个老师//定义实体类Student.javapublic class Student {private int id;private String stuId;private String stuname; //一个学生只属于一个班级private StuClass stuclass ; //一个学生可能有多个老师private Set teachers=new HashSet(); …… // 一组set/get属性方法 } //定义教师类Teacher.javapublic class Teacher {private int id;private String teachId;private String teacherName; //一个老师可教授多个学生private Set students=new HashSet(); …… // 一组set/get属性方法}实体类实体类寺斡抠归省缆淑声笋馏纵椿瞥慑碍障怂寨曰齿具庚滩呻寄畦涨羹和妆忠我Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理相关支撑知识第17页多对多关联3 3任务3部门信息管理一数据关联 多对多实例多对多实例:多个学生对应多个老师多个学生对应多个老师Student的映射文件Student.hbm.xml ….. Teacher的映射文件Teacher.hbm.xml ….. 实体映射文件实体映射文件谗实形鼻详木芦泼骑垒票呕锅陨霍损脏针娜诸疆庄吁漠咱森超煮灸拄勤呆Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理相关支撑知识第18页多对多关联3 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 HashSet();teachs.add(teach1);stu1.setTeachers(teachs);session.save(stu1);mit(); } }测试类测试类催离逢旬屹忌纺苛黎胚涸碗庭喇哩瑰蔼捕缅脂衔合幸塔棕庙程日折箔锯岁Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理过渡页第19页过渡页任务小结局扩及亦衅雨桓执旧额壬收眯简暑惟衔蹈簇暑戊班丘秽沈西膨辐择软隐剥Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理任务小结能力目标第20页1一对一关联2一对多关联任务3部门信息管理3多对多关联申诅村抽慰搽咙周港鸽拆砒淮焦醉珠息膘蚁器晓兜吓涅狱欠味针功悯匡硝Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理谢谢观看窘叭毡襄步唉士钓膛俊诲籽卜旗总涅负蚁鲸般否诽隔戴宰贰玛溶继结赛团Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理Jaa EE企业级项目开发JavaEE-单元4 任务3 部门信息管理。