jpa_basicnew

jpa_basicnew

ID:34394884

大小:348.49 KB

页数:29页

时间:2019-03-05

jpa_basicnew_第1页
jpa_basicnew_第2页
jpa_basicnew_第3页
jpa_basicnew_第4页
jpa_basicnew_第5页
资源描述:

《jpa_basicnew》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、JPA教程1.JPA概述JPA(JavaPersistenceAPI)作为JavaEE5.0平台标准的ORM规范,将得到所有JavaEE服务器的支持。Sun这次吸取了之前EJB规范惨痛失败的经历,在充分吸收现有ORM框架的基础上,得到了一个易于使用、伸缩性强的ORM规范。从目前的开发社区的反应上看,JPA受到了极大的支持和赞扬,JPA作为ORM领域标准化整合者的目标应该不难实现。JPA通过JDK5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中,图1很好地描述了JPA的结构:Sun引入新的JPAORM规范出于两个原因:其一,简化现有Java

2、EE和JavaSE应用的对象持久化的开发工作;其二,Sun希望整合对ORM技术,实现天下归一。JPA由EJB3.0软件专家组开发,作为JSR-220实现的一部分。但它不囿于EJB3.0,你可以在Web应用、甚至桌面应用中使用。JPA的宗旨是为POJO提供持久化标准规范,由此可见,经过这几年的实践探索,能够脱离容器独立运行,方便开发和测试的理念已经深入人心了。目前Hibernate3.2、TopLink10.1.3以及OpenJpa都提供了JPA的实现。JPA的总体思想和现有Hibernate、TopLink,JDO等ORM框架大体一致。总的来说,JPA包括以下3方面的技术

3、:ORM映射元数据,JPA支持XML和JDK5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中;JPA的API,用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。查询语言,这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。2.实体对象访问数据库前,我们总是要设计在应用层承载数据的领域对象(DomainObject),ORM框架将它们持久化到数据库表中。为了方便后面的讲解,我们用论坛应用为例,建立以下的领

4、域对象:Topic是论坛的主题,而PollTopic是调查性质的论坛主题,它扩展于Topic,一个调查主题拥有多个选项PollOption。这三个领域对象很好地展现了领域对象之间继承和关联这两大核心的关系。这3个领域对象将被映射到数据库的两张表中:其中,Topic及其子类PollTopic将映射到同一张t_topic表中,并用topic_type字段区分两者。而PollOption映射到t_polloption中。具有ORM元数据的领域对象称为实体(Entity),按JPA的规范,实体具备以下的条件:必须使用javax.persistence.Entity注解或者在XML

5、映射文件中有对应的元素;必须具有一个不带参的构造函数,类不能声明为final,方法和需要持久化的属性也不能声明为final;如果游离状的实体对象需要以值的方式进行传递,如通Sessionbean的远程业务接口传递,则必须实现Serializable接口;需要持久化的属性,其访问修饰符不能是public,它们必须通过实体类方法进行访问。3.使用注解元数据基本注解首先,我们对Topic领域对象进行注解,使其成为一个合格的实体类:代码清单1:Topic实体类的注解packagecom.baobaotao.domain;…importjavax.persistence.Colum

6、n;importjavax.persistence.DiscriminatorColumn;importjavax.persistence.DiscriminatorType;importjavax.persistence.DiscriminatorValue;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationType;importjavax.persistence.Id;importjavax.persistenc

7、e.Inheritance;importjavax.persistence.InheritanceType;importjavax.persistence.Temporal;importjavax.persistence.TemporalType;@Entity(name="T_TOPIC")①publicclassTopicimplementsSerializable...{@Id②-1@GeneratedValue(strategy=GenerationType.TABLE)②-2@Column(name="TOPIC_I

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
相关文章
更多
相关标签