使用Java Persistence API与JavaServer Faces开发Web应用 - 编程入门网
ter("location", location);
results = (List<Department>) query.getResultList ();
} finally {
em.close();
}
return results;
}
// …
// …
使用Java Persistence API与JavaServer Faces开发Web应用(14)时间:2011-05-25 IBM Thomas F Mutdosch需要注意的第一件事,是将用到资源引入的两处区域。因为 JPA Manager Bean 被定义为 Faces Managed Bean,所以 Web 容器能够向代码引入 EntityManagerFactory 和 UserTransaction ,该代码如下所示:
EntityManagerFactory 用于得到一个 EntityManager ,您需要在一个 UserTransaction 中集中所有的处理代码。 分析 deleteDepartment 方法, 您可以看到该方法接受了一个将从数据库中 删除的 Department 实体。该方法首先获得了一个 EntityManager,然后开始进 行处理。在证实您已经获得那个实体的最新版本之后,该方法将调用 EntityManager 将它从数据库中删除。最终,处理被授权执行,在授权之前,该 操作不会实际运行。 现在让我们看一下用于检索部门的查询方法。方法 getDepartmentByLocation 有一个部门所在地的参数,并返回 Department 实体。该方法得到一个 EntityManager ,然后通过使用在 Department 实体中指定的已命名查询的名字 ,创建一个 NamedQuery 。其中 NamedQuery 如下所述:
然后方法设置名为“location”的参数(由 namedQuery 中的 :location 标 示),它使用传递给方法的用户提供的值。访问 query.getResultList() 实际上 运行了查询并返回了结果。 现在您已经准备好了您的数据层,您的应用软件已经可以使用您的实体和 JPA Manager Beans 了。 第二部分. 向 Web 应用软件添加 JPA 数据 对于本例中的软件,您想要显示出一些部门,以及这些部门相对应的员工。另 外,您还想要该软件具有更新所有员工信息的功能。 您将要创建两个 Web 页面:一个显示出所有的部门,另一个用于更新员工的 信息。 在项目上右击并选择 New > Web Page 。创建两个页面: listDepartments.jsp 以及 updateEmployee.jsp 。 现在您需要向您的应用软件添加 JPA 数据。 打开 listDepartments.jsp 文件。 在 Palette 视图下,有一个 Data and Services 类别,它能让您向 Web 页 面添加不同种类的数据(图 21)。 在选框中选择 JPA data 项目,并将其拖到页面上。 图 21. Data 选框 使用Java Persistence API与JavaServer Faces开发Web应用(15)时间:2011-05-25 IBM Thomas F Mutdosch打开 Add JPA data 向导(图 22)。在第一页中,您可以选择一个可用的, 您想在当前页面中使用的 JPA Managers。您还可以选择是显示单个记录还是一个 列表,以及是否创建或者更改一个实体。您当前的列表将会显示出一系列部门。 选择 DepartmentManager ,然后选择 Retrieve a list of data 按钮。 图 22. Add JPA Data 向导 点击 Next,这样您可以在 DepartmentManager bean 中看到所有可用的查询 方法(图 23)。 图 23. 选择 JPA Query Method 这里,您将会显示出各个部门,这些部门是根据它们的部门号进行分类的。 选择 getDepartmentOrdered 方法。 Query Statement 区域显示出了,该方法将会采用的实际已命名查询。 切换到下一页,您可以选择您想在 Web 页面中显示的列(图 24)。 图 24. 选择在 Web 页面中显示的 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |