快速业务通道

Unmi的Struts2学习笔记(二) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
JB 3.0 规范中的描述,Query 接口需要同时支持 JPQL 和原生态 SQL 两种语法 。

Persistence

Persistence 是一个工具类,负责根据配置文件提供的参数创建 EntityManagerFactory 对象。

下面的代码演示了如何通过 JPA 提供的接口和 JPQL 查询语言完成实体查询 和更新的例子,例子中的代码假定运行在非 Java EE 环境中。

清单 1 在非 Java EE 环境使用 JPA 接口的例子

1. /* 2. * Persistence 类获取 EntityManagerFactory 实例; 3. * 一般 EntityManagerFactory 实例被缓存起来重复使用, 4. * 避免重复创建 EntityManagerFactory 实例引起的性能影响 5. */ 6.  EntityManagerFactory factory = 7.    Persistence.createEntityManagerFactory (“mysql”); 8. 9.  // 从 EntityManagerFactory 实例 factory 中获取  EntityManager 10.  EntityManager em = factory. 11.    createEntityManager(PersistenceContextType.EXTENDED); 12. 13.  // 实体的更新需要在事务中运行  14.  EntityTransaction tx = em.getTransaction (); 15.  tx.begin (); 16. 17.  // 查找所有公司中的女性雇员 18.  Query query = em.createQuery ("select e from Employee  e " 19.    + " where e.sex = ''femail''"); 20.  List results = query.getResultList (); 21. 22.  // 给所有女性雇员增加半天假期 23.  for (Object res : results){ 24.    Employee emp = (Employee) res; 25.    emp.setHoliday (emp.getHoliday () +0.5);} 26. 27.  // 提交事务(持久化所有更新) 28.  tx.commit (); 29.  em.close (); 30.  factory.close ();

使用Apache OpenJPA开发EJB 3.0应用,第1部分: OpenJPA与EJB 3.0(5)

时间:2011-08-31 IBM 肖菁

下面的代码显示了在 EJB 容器中开发 JPA 应用时的接口使用情况,由于容器 中的 EntityManager 是注入的,事务也是声明式的,因此在容器中完成上面的业 务逻辑要简单得多。

清单 2 在容器中运行的 JPA 例子

1.  /* 2.  * 在容器中运行 JPA 应用时,EntityManager 接口的实例”em”  3.  * 是通过 @Resource 注释注入的。事务也通常是声明式的。 4.  */ 5.  // 查找所有公司中的女性雇员 6.  Query query = em.createQuery ("select e from Employee e  " 7.    + " where e.sex = ''femail''"); 8.  List results = query.getResultList (); 9. 10.  // 给所有女性雇员增加半天假期 11.  for (Object res : results){ 12.    Employee emp = (Employee) res; 13.    emp.setHoliday (emp.getHoliday () +0.5);}

JPA 的优势

JPA 标准制定过程中充分吸收了目前已经出现的所有持久化技术的所有优点, 摒弃了它们存在的局限,使 JPA 在简单易用、查询能力等方面表现突出。

标准化

JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的 框架都遵循同样的架构,提供相同的访问 API,这保证了基于 JPA 开发的企业应 用能够经过少量的修改就能够在不同的 JPA 框架下运行。

对容器级特性的支持

JPA 框架中支持大数据集、事务、并发等容器级事务,这使得 JPA 超越了简 单持久化框架的局限,在企业应用发挥更大的作用。

简单易用,集成方便

JPA 的主要目标之一就是提供更加简单的编程模型:在 JPA 框架下创建实体 和创建 Java 类一样简单,没有任何的约束和限制,只需要使用 javax.persistence.Entity 进行注释;JPA 的框架和

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号