网站大量收购闲置独家精品文档,联系QQ:2885784924

15-J2EE架构与程序设计(O-R映射).ppt

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
15-J2EE架构与程序设计(O-R映射)要点

J2EE架构与程序设计 主讲:李伟刚 liweigang@nwpu.edu.cn 西北工业大学软件与微电子学院 第15章 O/R映射 主要内容 映射实体对象 实体关联 实体继承 第一节 映射实体对象 1 一个Customer bean Bean class 是一个映射到关系数据库的普通Java对象 有持有状态的数据成员 通过setter和getter方法访问数据成员的状态 必须至少拥有一个无参数的构造方法 成为持久化实体类 Java persistence只要求两段元数据 注解@javax.persistence.Entity: 指明了应将该类映射到数据库 注解@javax.persistence.Id: 指明了用作主键的成员变量 其余元数据在默认情况下 类中其余成员变量映射到具有相同名称和类型的数据库字段上 默认表名取bean class的非限定类名 1 一个Customer bean 使用@Id的方式,决定了声明持久化成员变量的方式 将@Id注解置于getter方法之上,则所有其他成员变量的声明方式需与此一致 将@Id注解置于类的成员变量之上,则所有其他成员变量的声明方式需与此一致 用XML映射文件声明元数据 放在META-INF目录下,或 用persistence.xml文件中的mapping-flile声明 1 一个Customer bean 2 基本关系映射 Java persistence支持的映射机制 从Java对象模型自动映射到数据库schema 已有数据库schema,根据schema自动生成实体的Java代码 已有数据库schema和Java类,通过注解或XML映射文件建立它们的映射关系 基本的Schema映射 一个例子 2 基本关系映射 2 基本关系映射 @Table @javax.persistence.Table定义 用XML映射文件表示 2 基本关系映射 @Column @javax.persistence.Column定义 2 基本关系映射 XML映射文件:orm_1_0.xsd 3 主键 3.1 定义 主键是给定entity bean的一个标识 每个entity bean必须有一个主键,且唯一 主键可以映射到一个或多个数据成员 必须是如下类型中的一种 Java基本类型(或其封装类) Java.lang.String 由基本类型和(或)字符串组成的主键类 3 主键 3.2 @Id和@GeneratedValue @javax.persistence.Id定义 @javax.persistence.GeneratedValue定义 3 主键 XML映射文件等价定义 3 主键 3.3 表生成器 将当前主键的值单独保存到一个数据库表中,每次从指定的表中查询来获得主键 用@javax.persistence.TableGenerator注解定义表生成器 该注解用于ENTITY类、成员方法或代表主键的成员变量 一旦在实体中标记,它不仅可以在本实体中使用,也可以在其他的实体中引用。它的作用范围是整个persist unit配置的实体类中 这种方法生成主键的策略可以适用于任何的数据库,不必担心不同数据库不兼容造成的问题 3 主键 @javax.persistence.TableGenerator定义 3 主键 3 主键 3.4 Sequence生成器 许多数据库内建序列号生成器,可按次序生成ID @javax.persistence.SequenceGenerator定义 3 主键 3 主键 3.5 主键类和复合键 主键类满足 必须是可序列化的 必须具有公有的无参构造方法 必须实现equals()和hashCode()方法 不支持自动生成功能 3.5.1 @javax.persistence.IdClass注解 主键类不是在bean class内部使用,而是在根据主键查找实体时,被bean class用来与entity manager交互 是一个类级别的注解 3 主键 一个主键类:CustomerPK.java 使用注解@IdClass 3 主键 3.5.2 @javax.persistence.EmbeddedId注解 主键类直接嵌入到bean class内部使用 将主键类的成员属性映射到表中的字段上的两种方法 在主键类中定义@Column映射 直接在bean class上使用@AttributeOverrides 3 主键 1 在主键类中定义@Column映射 3 主键 2 直接在bean class上使用@AttributeOverrides 4 成员属性映射 4.1 @Transient 用于不打算持久化的成员属性 4 成员属性映射 4.2 @Basic FetchT

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档