


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JPA是规范,不是产品。JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate、TopLink,JDO等ORM框架各自为营的局面。值得注意的是,JPA是在充分吸收了现有Hibernate、TopLink,JDO等ORM框架的基础上发展而来的,具有易于使用、伸缩性强等优点。从目前的开发社区的反应上看,JPA受到了极大的支持和赞扬,其中就包括了Spring与EJB3.0的开发团队。着眼未来几年的技术走向,JPA作为ORM领域标准化整合者的目标应该不难实现。JPA的总体思想和现有Hibernate、TopLink、JDO等ORM框架大体一致。总的来说,JPA包括以下3方面的技术:ORM映射元数据JPA支持XML和JDK5.0注解两种元数据形式,元数据描述对象和表之间的映射关系,框架据此将实现对象持久化到数据库表中。Java持久化API用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者可以从繁琐的JDBC和SQL代码中解脱出来。查询语言这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合提示:JPA不是一种新的ORM框架,他的出现只是用于规范现有的ORM技术,它不能取代现有的Hibernate、TopLink等ORM框架。相反,在采用JPA开发时,我们仍将使用到这些ORM框架,只是此时开发出来的应用不再依赖于某个持久化提供商。应用可以在不修改代码的情况下在任何JPA环境下运行,真正做到低耦合,可扩展的程序设计。Hibernate支持开发JPA依赖的jar文件Hibernate3.3核心包(8个文件)hibernate-distribution-3.3.1.GAhibernate3.jarlibbytecodecglibhibernate-cglib-repack-2.1_3.jarppp65brequired*.jarHibernate注解包:hibernate-annotation-3.4.0.GAhibernate-annotations.jarlibejb3-persistence.jar、hibernate-commons-annotations.jarHibernate针对JPA的实现包:hibernate-entitymanager-3.4.0.GAhibernate-entitymanager.jarlibtestlog4j.jar、slf4j-log4j12.jarJPA的配置文件JPA规范要求在类路径的META-INF目录下放置persistence.xml,文件的名称是固定的,配置模板如下:org.hibernate.ejb.HibernatePersistence 注意:persistence.xml必须放在classpath路径下的META-INF文件夹下,并且XML文件名字固定。使用ORM开发的两种方案:1. 先建表,后再根据表来编写配置文件和实体bean2. 先编写配置文件和实体bean,然后再生成表。 使用第一种方案的开发人员受到了传统数据库建模的影响。 使用第二种方案的开发人员采用的是领域建模思想。这种思想相对第一种思想更加OOP。元数据注解类上面注解Entity 表示实体Table 表示表的属性属性上标识id列 Id 主键生成策略 GeneratedValue(strategy=GenerationType.AUTO)注解列的属性Column(length=20,name=p_name,nullable=false)注解枚举Enumerated(EnumType.ORDINAL)EnumType.ORDINAL会指定保存枚举的索引Enumerated(EnumType.STRING) 会指定保存枚举的值Lob标注在Byte属性上,表示二进制大对象Lob标注在String类型的属性上,表示大文本对象Transient表示属性不需要写入数据库JPA 主要组件和相互关系EntityManagerFactory EntityManagerFactory 是 EntityManager 的工厂类,负责创建 EntityManager 对象,相当于Hibernate中的SessionFactory。EntityManager EntityManager 是 JPA 应用中使用的基本对象,通过它提供的相应方法可以管理持久化对象,也可以新建或者删除持久化对象。EntityManager 还负责创建 Query 实例。在容器外使用时,EntityManagerFactory 和 EntityManager 之间是一对一的关系,相当于Hibernate中的Session。EntityTransaction 提供 Entity 操作时需要的事务管理,和 EntityManager 是一对一的关系。在查询操作时不需要使用 EntityTransaction,而在对象持久化、状态更新、对象删除等情况下则必须使用显式的使用 EntityTransaction 的相关方法管理事务。Query Query 是查询实体的接口,Query 对象可以从 EntityManager 中获得。根据 EJB 3.0 规范中的描述,Query 接口需要同时支持 JPQL 和原生态 SQL 两种语法。Persistence Persistence 是一个工具类,负责根据配置文件提供的参数创建 EntityManagerFactory 对象。Ent
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论