「Java开发指南」如何在MyEclipse中使用JPA和Spring管理事务?(一)

发布时间 2023-10-13 09:21:33作者: AABBbaby

本教程中介绍一些基于JPA/ spring的特性,重点介绍JPA-Spring集成以及如何利用这些功能。您将学习如何:

  • 为JPA和Spring设置一个项目
  • 逆向工程数据库表来生成实体
  • 实现创建、检索、编辑和删除功能
  • 启用容器管理的事务

MyEclipse技术交流群:742336981 欢迎一起进群讨论

1. 用JPA和Spring Facets创建一个Java项目

将JPA和Spring功能添加到Java或Web项目中是很常见的,本教程使用一个Java项目来演示这些技术的工作原理。

注意:您可以下载本教程中开发的项目,并将其导入到您的工作区中。

(1)创建一个名为SampleJPASpringProject的示例Java项目,并向其中添加JPA facet 

(2)右键单击该项目,然后选择MyEclipse>Project Facets>Install Spring Facet

(3)单击Next来接受Spring版本和运行时默认值。

如何在MyEclipse中使用JPA和Spring管理事务?
设置Spring版本和目标运行时

(4)MyEclipse为您创建了一个新的applicationContext.xml文件,点击Next。

如何在MyEclipse中使用JPA和Spring管理事务?
设置bean配置

(5)注意Add Spring-JPA支持复选框,它告诉MyEclipse在这个JPA项目中生成把Spring和JPA集成在一起的源。因为您要将Spring添加到JPA项目中,所以默认情况下是选中的。另外默认情况下支持使用@Transactional Spring注释,单击Finish。

如何在MyEclipse中使用JPA和Spring管理事务?
添加Spring-JPA功能

现在项目已经添加了JPA和Spring facets,您可以打开applicationContext.xml Spring bean配置文件,看看项目是如何配置的。通过单击编辑器底部的Beans Graph选项卡打开图形视图。

如何在MyEclipse中使用JPA和Spring管理事务?
Spring配置

您可以从Spring bean配置文件中看到不同bean是如何配置的,transactionManager使用entitytManagerFactory,而entitytManagerFactory又使用JPA持久单元(在添加JPA facet时创建)。

2. 逆向工程

现在项目已经设置好了,您可以将PRODUCTLINE表逆向工程到项目中,并开始使用生成的实体。

(1)右键单击src文件夹,并选择New>Package来创建一个要在其中生成实体的包。

(2)右键单击包,并选择MyEclipse>Generate Entities & DAOs。

(3)选择PRODUCTLINE,并单击Add,然后点击Next。

如何在MyEclipse中使用JPA和Spring管理事务?
选择PRODUCTLINE表

(4)填写如下所述的字段。

Java source folder:项目中生成文件的文件夹。

Java package:您在上面创建的用于放置生成类的包。

Entity Bean Generation:告诉MyEclipse生成带有正确注释的普通Java类,以便作为JPA实体使用。

Create abstract class:如果您希望自定义生成的类,而不需要每次都覆盖您的更改,MyEclipse可以生成基抽象类以及您可以自定义和使用的具体子类。每次进行逆向工程时,MyEclipse只覆盖抽象基类,在具体的子类中维护您的更改。

Update persistence.xml:与Hibernate类似,您可以在JPA配置文件中列出正在使用的所有JPA实体。

Java Data Access Generation:告诉MyEclipse生成DAO实用程序类,允许您立即从数据库中保存/查找/更新/删除实体。这段代码封装了JPA实体管理器,使使用实体和数据库变得非常容易。

Generate Precise findBy Methods:告诉MyEclipse生成findByXXX方法,其中XXX属于被反转的实体上的每个属性,这允许使用任何属性作为查找实体的方法轻松地从DB访问实体。

Generate Java interfaces:告诉MyEclipse生成顶级DAO接口以及具体实现(例如IProductlineDAO和ProductlineDAO)

DAO Type:根据所生成的DAO的类型,MyEclipse(除了为您生成DAO实现之外)还可以用连接到现有entityManagerFactory的新DAO为您更新Spring bean配置文件。

如何在MyEclipse中使用JPA和Spring管理事务?
生成实体

5. 点击Finish对表进行逆向工程。当逆向工程完成后,您可以再次查看项目的Spring配置并查看更新。

如何在MyEclipse中使用JPA和Spring管理事务?
全新的Spring DAO

通过更新的Spring视图,您可以看到包含了ProductlineDAO。

更多MyEclipse中文教程资讯请上中文网获取