使用JPA完成持久化_第1页
使用JPA完成持久化_第2页
使用JPA完成持久化_第3页
使用JPA完成持久化_第4页
使用JPA完成持久化_第5页
已阅读5页,还剩17页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

使用JPA完成对象持久化 2 本章任务 认识JPA使用JPA实现 POJO用户对象的增加 删除和修改操作基于JPA QL查询数据 3 了解JPA基本原理学会使用Annotation编写实体类学会使用JPA完成数据增加 删除 修改和查询操作 本章目标 4 JPA JPA JavaPersistenceAPI 作为JavaEE5 0平台标准的ORM规范 将得到所有JavaEE服务器的支持 JPA通过JDK5 0注解或XML描述对象 关系表之间的映射关系 并将运行期的实体对象持久化的数据库中 JPA由EJB3 0软件专家组开发 与EJB3 0有着藕断丝连的关系 Sun新引入JPA的原因 简化J2EE和J2SE应用对象持久化的开发工作Sun希望整合ORM技术 实现天下统一 JPA与EJB3 0 早期的EJB有三种类型的Bean 分别是会话Bean SessionBean 实体Bean EntityBean 和消息驱动Bean MessageDrivenBean 随着EJB3规范的推出 EJB中的实体Bean EntityBean 逐渐被JPA规范所替代 这也正是为什么JPA的规范包含在EJB3的规范中的原因 但JPA不仅能在EJB环境中使用 也能在J2SE的环境中使用 相对于EJB2 X中的实体Bean 使用的范围更光阔 总之 简单的说 JPA虽然出自EJB3 但其使用的范围却大于EJB3 不仅可用在JavaEE5 0的环境中 也可以应用在JavaSE的环境中 如图所示 清楚的表明了EJB3与JPA的关系 5 6 使用JPA实现对象持久化 6个准备工作 7个步骤准备工作1 导入如下的库 1 Glassfish2 SQLServerDriver3 ToplinkEssentials 7 使用JPA的基本步骤 准备工作2 添加持久化配置文件 META INF 目录中 persistence xml oracle toplink essentials PersistenceProvideraddressbook Addressaddressbook Person Provider名称 配置数据库链接 数据库驱动 运行时先删除 再创建表 需要持久化的类 可以有多个 持久化单元名称 8 使用JPA的基本步骤 准备工作3 添加实体类和使用JPA的注记标注持久化特性 Entity Table name ACCP50NT ADDRESS publicclassAddressimplementsSerializable privatestaticfinallongserialVersionUID 1L privateLongid privateStringstreet privateStringcity privateStringcountry publicAddress 默认构造方法 Getterandsetter方法 实体类注记 POJO属性 映射的表 缺省与类同名 Address java 9 使用JPA的基本步骤 准备工作4 添加实体类和使用JPA的注记标注持久化特性 Entity Table name ACCP50NT ADDRESS publicclassAddressimplementsSerializable Id GeneratedValue strategy GenerationType AUTO Column name AddressID publicLonggetId returnid publicvoidsetId Longid this id id 主键 主键生成器 AUTO 由系统选择生成策略IDENTITY 使用标识列 属性到字段的映射 缺省与属性同名 写在getter方法前 JPA实体类中常用注记 一 Entity使用 Entity批注将普通的Java对象 POJO 类指定为实体 并使其可用于JPA服务 必须将POJO类指定为实体 然后才可以使用任何其他JPA批注 Table使用 Table批注指定与实体关联的表此批注的属性常用属性 name 表名称schema 数据库模式 一般为dbocatalog 数据库名称uniqueConstraints 数据库表中的唯一约束列无 uniqueConstraints 有 uniqueConstraints UniqueConstraint columnNames EMP ID EMP NAME 10 JPA实体类中常用注记 二 Id使用 Id批注将一个或多个持久字段或属性指定为实体的主键 ColumnJPA持续性提供程序假设每个实体的持久字段存储在其名称与持久字段的名称相匹配的数据库表列中此批注的属性常用属性 name 列名length 长度nullable 是否为空insertable 是否插入updatable 是否修改unique 是否唯一 GeneratedValue自动增长的标识列 GeneratedValue strategy GenerationType IDENTITY 11 JPA实体类中常用注记 三 示例1 61 OneToMany 使用一般参数的Customer类 EntitypublicclassCustomerimplementsSerializable OneToMany cascade ALL mappedBy customer publicSetgetOrders returnorders 示例1 62 ManyToOne 使用一般参数的Order类 EntitypublicclassCustomerimplementsSerializable ManyToOne JoinColumn name CUST ID nullable false publicCustomergetCustomer returncustomer 12 JPA实体类中常用注记 四 示例1 47 ManyToMany 使用一般参数的Customer类 EntitypublicclassCustomerimplementsSerializable ManyToMany JoinTable name CUST PHONE joinColumns JoinColumn name CUST ID referencedColumnName ID inverseJoinColumns JoinColumn name PHONE ID referencedColumnName ID publicSetgetPhones returnphones 示例1 48 ManyToMany 使用一般参数的PhoneNumber类 EntitypublicclassPhoneNumberimplementsSerializable ManyToMany mappedBy phones publicSetgetCustomers returncustomers 13 14 使用JPA的基本步骤 准备工作5 添加导入的类和接口 packageaddressbook importjava io Serializable importjavax persistence Column importjavax persistence Entity importjavax persistence GeneratedValue importjavax persistence GenerationType importjavax persistence Id importjavax persistence Table JPA必需的接口 15 使用JPA的基本步骤 准备工作6 使用注记描述对象之间的关联 每个Person具有一个地址Address Entity Table name ACCP50NT PERSON publicclassPersonimplementsSerializable OneToOne cascade CascadeType ALL Addressaddress OneToOne关联 ALL 对Person的全部操作将级联到Address对象 16 小结 使用JPA的准备工作是什么 JPA配置文件中配置了哪些信息 大家经常使用MP3播放器 请写出MP3播放器的实体类的代码并加上JPA注记 17 使用JPA实现用户添加 使用JPA的6个步骤 JPA实现程序的增删改 开始事务EntityManagerHelper beginTransaction 创建DAOUserDAOdao newUserDAO 创建对象UserBeanuser newUserBean user setName hlq user setPass 1211 user setAddress tyxc user setAge 12 持久化操作dao save user 修改 删除操作与此类似 事务提交EntityManagerHmit 18 JPA实现程序的查询 查询所有Listresult dao findAll for User2o result System out pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论