- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 7
项目:基于Struts2+Hibernate的学生信息管理系统
第三讲——Hibernate框架实现多表一对多查询
工作任务:使用Struts2和Hibernate实现根据班级号查询学生信息的功能。
知识点:
什么是一对多关系?
关系数据库中两个表之间的一种关系,该关系中第一个表中的单个行可以与第二个表中的一个或多个行相关,但第二个表中的一个行只可以与第一个表中的一个行相关。
实例解释:
首先一对多不是一个表中的一个列对应另一个表中的多个列,列是不能够一对多的!这里的一对多是是指行的对应!
例如CLASS表中的班级列CLASSID对应于STUDENT表中的班级列CLASSID,当CLASS表中的2班的CLASSID改成4,STUDENT表中所有原来CLASSID为2的学生的CLASSID都改成了4。但反过来,想要把CLASS表中的CLASSID为2的其中一个学生CLASSID改为4,在不改动主键表的情况下是不行的,说明外键是受主键约束的。
命名探究:
一对多关系,一般是一个表的主键对应另一个表的非主键,主键的值是不能重复的,而非主键值是可以重复的,一个主键值对应另一个表的非主键的值,那么就只有一个值对一个值或一个值对多个值两种可能,故称一对多。而在一对一关系中,一般是主键对应主键,那么显然就只有一个值对一个值的可能,故称一对一。
单向关联
单向的一对多关系只需在一方进行映射配置,例如:
在以上映射文件中,property元素的insert属性表示被映射的字段是否出现在SQL的INSERT语句中;update属性表示被映射的字段是否出现在SQL的UPDATE语句中。
set元素描述的字段(本例中为orders)对应的类型为java.util.Set,它的各个属性的含义如下:
name:字段名;本例的字段名为orders,它属于java.util.Set类型。
table:关联表名;本例中,orders的关联数据表名是orders。
lazy:是否延迟加载;lazy=false 表示立即加载。
inverse:用于表示双向关联中的被动的一端。inverse的值为false的一方负责维护关联关系。默认值为false。本例中Customer将负责维护它与Orders之间的关联关系。
cascade:级联关系;cascade=all表示所有情况下均进行级联操作,即包含save-update和delete 操作。
sort:排序关系,其可选取值为:unsorted(不排序),natural(自然排序),comparatorClass(由某个实现了parator接口的类型指定排序算法)。
key子元素的column 属性指定关联表(本例中为orders表)的外键。
one-to-many子元素的class 属性指定了关联类的名字。
任务实施:
步骤1、在学生信息管理系统的基础上增加,代码段如下:
步骤2、在数据库中增加数据表class
class表
步骤3、在工程中src\PO目录下增加班级实体类Clazz和对应的映射文件Clazz.hbm.xml
步骤4、在工程中src\Dao目录下创建类ClazzDao,在类中新建根据班级id查询学生信息的方法findStudentByClazzId
步骤5、在hibernate.cfg.xml文件中的session-factory节点中加入实体类的映射文件
步骤6、在该工程src\studentAction创建类ClazzAction
步骤7、完成最终的studentmanage.jsp页面,创建失败页面error.jsp
步骤8、修改struts.xml文件
任务拓展:
改造注册功能,增加“省份”信息,信息来源于数据库中省份表的内容。这样,在进行注册信息查询时,就会涉及两张表(省份表与用户表一对多关系)的查询,本任务要求在查询页面中输入省份名这个条件查询出属于该省份的所有注册用户。
您可能关注的文档
- 2018天南地北话美食 华南美食 碗仔翅.docx
- 2018天南地北话美食 华中美食 荆州鱼糕.docx
- 2018天南地北话美食 华中美食 热干面.docx
- 2018天南地北话美食 西北美食 尕面片.docx
- 2018天南地北话美食 西南美食 毛血旺.docx
- 2018天南地北话美食 西南美食 泡椒板筋.docx
- 2019食品营养与检测专业 社会培训 食品学院举办“人体成分分析与膳食营养指导”社会服务活动.docx
- ArcGIS软件应用 ArcGIS和其他格式交换 GPS数据转要素点.docx
- ArcGIS软件应用 ArcGIS和其他格式交换 MapGIS矢量转ArcGIS .docx
- ArcGIS软件应用 ArcGIS和其他格式交换 TEXT数据转ArcGIS数据.docx
文档评论(0)