- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于StrutsSpringHibernate框架的项目开发.ppt
基于Struts Spring Hibernate框架的项目开发(三)Hibernate关联映射 单元教学目标 了解实体映射文件(*.hbm.xml)基本结构 学习class/id/property等常见元素的配置方法 掌握多对一映射的配置及其使用 理解“懒加载”和“抓取方式”属性的作用 掌握一对多映射的配置及其使用 理解“级联”属性和“反向”属性的含义 单元重点难点 单元重点 学习class/id/property等常见元素的配置方法 掌握多对一映射的配置 掌握一对多映射的配置 单元难点 理解“级联”和“反向”属性的含义 理解实体对象声明周期的概念 实体配置文件 实体映射文件 实体映射文件通常命名为*.hbm.xml,用于指定实体类和数据库表的映射关系,class元素用于配置类和表对应关系,id、property元素用于配置类属性和表字段的对应关系。 ...... hibernate-mapping package=实体类所在包名 class name=类名 table=数据库表名 id name=类主键属性名 column=表主键列名 generator class=主键生成策略 / /id property name=类属性名 column=表列名 / ...... /class /hibernate-mapping 实体配置的关键元素 class元素 若配置中的表名、列名是SQL关键字,可以使用反引号(`)转义,以避免冲突。(相当于MS SQL 中的中括号[]作用) class name=User table=`User` 实体配置的关键元素 id和property元素 id中的generator子元素 定义如何为类的新实例生成新的主键的。其中的class属性定义了若干种主键的生成策略,其取值如下: 实体配置的关键元素 generator元素class属性的部分选择 实体关系 关联关系 现实中的实体(物体)之间往往是都是相互关联的,描述现实的关系型数据库表之间当然也有关联。 数据库表的三种关系 一对多关系 一对多关系是最普通的一种关系。在这种关系中,A 表中的一行可以匹配 B 表中的多行,但是 B 表中的一行只能匹配 A 表中的一行。例如,每个出版社出版很多书,但是每本书名只能出自一个出版社。 多对多关系 在多对多关系中,A 表中的一行可以匹配 B 表中的多行,反之亦然。要创建这种关系,需要定义第三个表,称为结合表,它的主键由 A 表和 B 表的外部键组成。例如,作者和图书之间就具有多对多关系。 一对一关系 在一对一关系中,A 表中的一行最多只能匹配于 B 表中的一行,反之亦然。这种关系并不常见,因为一般来说,按照这种方式相关的信息都在一个表中。 多对一映射 多对一映射 数据库表中使用外键关系来描述多对一,多的一方是外键所在方,一的一方是被被引用方 面向对象则往往使引用关系来表达多对一,多的一方持有一的一方的引用 数据库表名 实体类 多对一映射 many-to-one元素 class name=Movie id name=id…/id ……. many-to-one name=category column=categoryId class=Category / /class public class Movie { …… private Category category; ……. } 实践安排 实践安排 使用Hibernate框架,实现Movie和Category实体的多对一映射, (1)查询并获取Movie及其相关的Category信息 (2)添加一个Movie并正确保存对应的Category信息 一对多集合映射 一对多集合映射 多对一关系反过来看,就是一对多关系。从One的一方角度看,One方中应该持有Many方的多个对象,也就是集合 Hibernate中,使用set、bag、map等集合元素描述一对多映射,使用key和one-to-many子元素描述外键和关联类信息 一对多集合映射 set元素配置Set类型集合的一对多 bag元素配置List类型集合的一对多 class name=Category table=Category …… set name=movies lazy=true key column=categoryId/ one-to-many class=Movie/ /set /class public class Category {
文档评论(0)