快速业务通道

使用Apache OpenJPA开发EJB 3.0应用,第2部分:开发第一个Open JPA应用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
件的对象列表,需要借助 Query 接口和 JPQL。Query 接口可以直接通过 EntityManager 的 createQuery 方法获得。 Query 对象目前支持 JPQL 和原生态 SQL 两种方式。

JPQL 是 OpenJPA 中支持的对象查询语言,是 EJB SQL 的一种实现。通过 JPQL,我们可以用一种面向对象的方式编写持久化对象的查询条件。比如要查找 编号为“1”的 Animal 对象,我们可以使用下面的 JPQL 语法:

select animal form Animal animal where animal.id=1)

关于 JPQL 的更多信息请参考 OpenJPA 的帮助文档。Query 接口和 JPQL 的 实际例子请参考 清单 4 AnimalDAOImpl.java 中的源代码。

清单 4 中列出了如何使用 OpenJPA 操作、查找持久化对象 Animal 的源代码 ,读者可以从中了解使用 OpenJPA 时所应该完成的步骤和方法。

清单 4 AnimalDAOImpl.java

1. package org.vivianj.openjpa.impl.ejb3; 2. 3. import java.util.List; 4. 5. import javax.persistence.EntityManager; 6. import javax.persistence.EntityManagerFactory; 7. import javax.persistence.Persistence; 8. import javax.persistence.Query; 9. 10. import org.vivianj.openjpa.dao.AnimalDAO; 11. import org.vivianj.openjpa.entity.Animal; 12. 13. /** 14. * AnimalDAOImpl 演示了如何使用OpenJPA访问数据库的方法和步骤 15. * 16. */ 17. public class AnimalDAOImpl implements AnimalDAO { 18. 19. /** 20.  * removeAnimal方法可以从数据库中删除指定编号的Animal对象 21.  * 22.  * @param id 23.  *      Animal对象的编号 24.  */ 25. public void removeAnimal(int id) { 26.  // 获取EntityManagerFactory 27.  EntityManagerFactory factory = Persistence 28.   .createEntityManagerFactory("mysql"); 29.  // 获取EntityManager 30.  EntityManager em = factory.createEntityManager(); 31.  // 开始事务处理 32.  em.getTransaction().begin(); 33. 34.  // 使用Query删除对象 35.  em.createQuery("delete from Animal animal where  animal.id=" + id) 36.   .executeUpdate(); 37. 38.  // 我们还可以选择通过Query对象来完成  39.  /* 40.  * // 从EntityManager中查询到符合条件的对象 Animal animal  =  41.  * em.find(Animal.class,id); // 调用EntityManager的 remove方法删除对象 42.  * em.remove(animal); 43.  */ 44. 45.  // 提交事务  46.  em.getTransaction().commit(); 47.  // 关闭EntityManager 48.  em.close(); 49.  // 关闭EntityManagerFactory 50.  factory.close(); 51. 52. } 53. 54. /** 55.  * findAnimalsByName 通过输入的name内容模糊查找符合条件的 Animal对象列表 56.  * 57.  * @param name 58.  *      Animal对象的name 59.  * @return 符合模糊查找条件的Animal对象列表 60.  */ 61. public List<Animal> findAnimalsByName(String name)  { 62.  // 获取EntityManagerFactory 63.  EntityManagerFactory factory = Persistence 64.   .createEntityManagerFactory("mysql"); 65.  // 获取EntityManager 66.  EntityManager em = factory.createEntityManager(); 67. 68.  /* 69.  * 通过EntityManager的createQuery方法获取Query对象 70.  * createQuery方法的参数是JPQL查询语句,JPQL语句的语法请参考 Op

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号