- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 {?????????
您可能关注的文档
最近下载
- 2024年高级卫生专业技术资格考试(正高级)试卷及解答参考.docx VIP
- 留学生汉语口语自我效能感的研究.pdf VIP
- 高级卫生专业技术资格考试(正高级)试卷及解答参考.docx VIP
- 高级卫生专业技术资格考试(正高级)试卷及解答参考.docx VIP
- 高级卫生专业技术资格考试(正高级)试卷及解答参考.docx VIP
- 掼蛋比赛活动策划方案.pptx
- 年处理10万吨苯-氯苯筛板精馏塔设计说明书2024.12.17.docx VIP
- 《中国近代史纲要选择题集锦(全)》.doc VIP
- HG-T 2517-2009 工业磷酸三钠.pdf VIP
- 《中国近现代史纲要(2023版)》课后习题答案汇编.doc VIP
文档评论(0)