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

关于JPA 什么是JPA JPA全称为Java Persistence API ,Java持久化API是Sun公司在Java EE 5规范中提出的Java持久化接口。JPA吸取了目前Java持久化技术的优点,旨在规范、简化Java对象的持久化工作。 如图说明了JPA在系统架构中的作用,使用JPA持久化对象,而不是依赖于某一个ORM框架。 JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。   Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用的对象持久化的开发工作;其二,Sun希望整合对ORM技术,实现天下归一。   JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一部分。但它不囿于EJB 3.0,你可以在Web应用、甚至桌面应用中使用。JPA的宗旨是为POJO提供持久化标准规范,由此可见,经过这几年的实践探索,能够脱离容器独立运行,方便开发和测试的理念已经深入人心了。目前Hibernate 3.2、TopLink 10.1.3以及OpenJPA都提供了JPA的实现。   JPA的总体思想和现有Hibernate、TopLink,JDO等ORM框架大体一致。总的来说,JPA包括以下3方面的技术:   ORM映射元数据,JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中;   JPA 的API,用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。   查询语言,这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合 2.创建EntityManager 3.开始一个事务 4.持久化操作(包括:merge/persitst/remove/find) 5.提交事务 6.关闭EntityManager public class JPAJUnitTest { ?????????? private static EntityManagerFactory emf; ?????????? private Person p; ?????????? private Address a ; ?????????? @BeforeClass ??????????? public static void setUpClass() throws Exception { ?????????????? //1. 创建EntityManagerFactory ?????????????? emf =? Persistence.createEntityManagerFactory(AddressBookPU); ??????????? } ??????????? ?????????? @Before ??????????? public void setUp() throws Exception { ??????????????? p = new Person(); ??????????????? p.setName(张); ??????????????? p.setSurname(三); ??????????????? a = new Address(); ??????????????? a.setCity(北京); ??????????????? a.setCountry(中国); ??????????????? a.setStreet(海淀15); ??????????????? p.setAddress(a); ??????????? }????????????? javax.persistence.EntityManager em = emf.createEntityManager(); ????????????? em.getTransaction().begin(); //3. 开始事务 ????????????? try { ????????????????? em.persist(object); //4. 持久化操作 ????????????????? em.getTransaction().commit(); //5. 提交事务 ????????????? } catch (Exception e) { ????????????????? e.printStackTrace(); ????????????????? em.getTransaction().rollback(); ????????????? } finally { ?????????

文档评论(0)

173****7830 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档