使用REST Web Services来管理JPA实体。在逆向工程数据库表后生成REST Web服务,下面的示例创建用于管理博客条目的简单Web服务。你将学会:
- 利用数据库逆向工程开发REST Web服务
- 部署到Tomcat服务器
- 使用REST Web服务资源管理器进行测试
![c8c79413f674dcfe85c9926435696890.png](https://i-blog.csdnimg.cn/blog_migrate/412d9b053f79a61f92d21e7e11f8cc1d.jpeg)
1.建立项目和数据库连接
要在MyEclipse中开始REST和反向工程,您将需要以下内容:
- 添加了JPA Facets的项目
- 使用DB Explorer选择要使用JPA进行逆向工程的表
在MyEclipse中,您可以将JPA Facets添加到许多不同类型的项目中。JPA Facets通常被添加到Java项目或Web项目中。
1.1设置Web项目
- 单击New图标上的下拉箭头,然后选择Web Project。
- 在Project Name字段中输入RESTProject,接受默认选项,然后单击Finish。
![1b793b7760bd1087344757a2176a45d5.png](https://i-blog.csdnimg.cn/blog_migrate/a9464bc3167549c783f200c9226905f8.jpeg)
创建Web项目
现在已经创建了项目,下一步是创建一个DB Connection来与该项目一起使用。在添加JPAFacet时,需要选择连接。
1.2建立DB连接
MyEclipse提供了一个预配置的DB连接,指向Apache Derby DBMS的嵌入式安装。您可以立即使用这个连接,而不需要设置自己的DBMS或连接。
- 单击OpenPers.图标,并从菜单中选择Database Explorer。
- 在DB Browser视图中,选择MyEclipse Derby连接,然后单击Open Connection图标。这将启动嵌入式MyEclipse Derby服务器,并使您能够立即访问数据库中的表。
![c0c4a89f8e2cf08840efac95019f43d8.png](https://i-blog.csdnimg.cn/blog_migrate/83dc59535f39fe260b7c1026cb03a9aa.jpeg)
- 打开数据库连接
MyEclipse Derby包括几个示例模式。您将使用的表是MYBLOG表,其中包含一个用于处理博客帖子的表。
![2436726ab7e604d4c1d550a6bab23e82.png](https://i-blog.csdnimg.cn/blog_migrate/238be1204266f80291f1ac5aab467f7e.jpeg)
Post table
1.3将JPA Facets添加到项目中
打开DB连接后,您可以将JPA方面添加到项目中,以便它可以从DB连接访问表和信息。
- 切换回Java企业透视图,右键单击项目,并选择“配置方面”>安装JPA方面。
- 选择2.1作为JPA规范版本,以及MyEclipse泛型Java运行时在目标运行时下拉,然后单击Next。
![a12287536b884338e59a36d1cd2ed265.png](https://i-blog.csdnimg.cn/blog_migrate/fff02f891a637b5f587c2a0300097c5c.jpeg)
- 配置JPA方面
- 使用EclipseLink 2.5.x作为平台,使用MyEclipse Library作为JPA实现类型。在Connection字段中选择MyEclipse Derby,选择Add driver库来构建路径并从连接复选框中重写默认模式,并从Schema下拉菜单中选择MYBLOG。单击“完成”。
![19e41668b7a8e8d770e2179aa55f932d.png](https://i-blog.csdnimg.cn/blog_migrate/58622ea8301f5bf7d6cc09090f5fd8e7.jpeg)
- 完成JPA方面配置
现在项目已经添加了完全配置的JPA方面,其中包括JPA配置信息、DB连接信息,以及添加到项目的构建路径中的所有必要的JDBC和JPA库。所有构建路径添加都准备好部署到应用服务器。
![14b84d724f52ceeb123e7faf9167f919.png](https://i-blog.csdnimg.cn/blog_migrate/664275f34700713bc2c941121d290924.jpeg)
项目结构
2.Reverse-Engineer the POST表
现在已经设置了项目,您已经准备好将POST表逆向工程到项目中并开始使用生成的实体。
- 右键单击项目,然后选择JPA工具>GenerateEn.es&DAO。
- 注意:您可以选择使用MyEclipse逆向工程工具或DALI实体生成器。做出选择,单击OK,然后完成向导。本教程使用MyEclipse逆向工程工具。
![0be7cb668357fe014ecdcc0afcc7a4cf.png](https://i-blog.csdnimg.cn/blog_migrate/0f8d2ac913d1d8cdf2ec164a313d82d8.jpeg)
- 逆向工程工具选择
- 选择POST表,单击Add,然后单击Next。
![7f3421784ac20fa171324023ae1b5a50.png](https://i-blog.csdnimg.cn/blog_migrate/fd5b9439633f54115447b08dc2a7063b.jpeg)
- 指定要进行逆向工程的POST表
- 在Java包字段中,键入COM.MycliestId.jPa。选择以下复选框:
- Entity Bean Generation: 告诉MyEclipse生成被注释为JPA实体的普通Java类
- Update persistence.xml:类似于Hibernate;您可以列出在JPA配置文件中使用的所有JPA实体。
- Java Data Access Generation:告诉MyEclipse为您生成DAO实用程序类,允许您立即从数据库中保存/查找/更新/删除实体。这段代码包装了JPA实体管理器,并使得使用实体和DB非常容易。
- Generate Precise findBy Methods:告诉MyEclipse生成findByXXX方法,其中XXX与被反转的实体上的每个属性有关。这允许使用任何属性作为查找实体的手段,轻松访问DB中的实体。
- Generate Java Interfaces:选择此选项创建一个具有相应的DAO实现类的接口类。取消选择此选项只生成DAO实现类,而不用定义接口的单独类。
![28c4bb82f4ba88707836442e90aa650a.png](https://i-blog.csdnimg.cn/blog_migrate/ace16d81398da4523d5cec752ccbcfa1.jpeg)
- 建立逆向工程
- 单击Finish。您可以查看通过展开Explorer视图中的com.myeclipseide.jpa包生成的资源MyEclipse。
![93ca50ce68890c8386279d2b95b37257.png](https://i-blog.csdnimg.cn/blog_migrate/73a82e92b46b76ac1a92fc3b7f973034.jpeg)
- 生成的类
所生成的实体描述如下:
- EntityManagerHelper:当使用直接JPA时,开发人员需要使用EntityManager类。这个生成的助手类通过提供静态方法访问管理器,以及最容易调用的常见操作,使得使用EntityManager的过程更加容易。
- IPostDAO:定义相应DAO实现类的接口的类。
- post:这个类是表示DB表POST的JPA实体(POJO)。这个POJO包含POST表的字段,并且表示DB中的一行。
- PostDAO:这个类包装了EntityManagerHelper以提供易于使用的方法,特别是用于从DB中添加/查找/更新和删除产品的方法。
注意:在反向工程完成之后,您可以打开Persistence透视图,使用一些持久性和数据源工具来分析DB和项目中的数据。
3.使用REST Web服务访问数据
可以通过RESTWeb服务公开从数据库表生成的JPA实体。为此,您必须首先将JAX-RS方面安装到项目中。当您通过REST服务公开实体时,会生成REST外观。这些外观提供了通过REST公开的用于管理数据库的方法。
- 右键单击项目,然后选择Configure Facets>Install JAX-RS(REST Web Services)Facet。
- 接受默认JAX-RS 2.1版本和默认目标运行时,然后单击Next。
![838cabc2622fe53d85c756aed5c15ccd.png](https://i-blog.csdnimg.cn/blog_migrate/7e096f60ab2d758ad2a2071cc978507b.jpeg)
- 选择JAX-RS版本和目标运行时
- 接受默认facet配置,然后单击Finish。
![17f2500c8f32abc8148825895300c0c7.png](https://i-blog.csdnimg.cn/blog_migrate/66f373dd87aeeceabe30cbb277dc6c4b.jpeg)
- 完成JAX-RS配置
- 右键单击资源管理器中的com.myeclipseide.jpa包,并选择Web服务工具>通过REST Web服务公开。
- 包和EntityManagerHelper类是默认的。如果对多个实体进行了逆向工程,则可以选择要公开的实体。在这种情况下,您只有一个。单击Finish生成REST外观。
![9c9c3686420d7e3dd2a6ef9c1f1806c8.png](https://i-blog.csdnimg.cn/blog_migrate/f7a423ec799a931f6328b1306958e687.jpeg)
![fc648871544a3a0107f6aad1e81ebafe.png](https://i-blog.csdnimg.cn/blog_migrate/26b858821ccd95971e7373444193419c.jpeg)
- Generating REST facades
如果打开PraseDeSerest.java文件,您可以看到可用的方法,如创建、编辑、删除和查找。
![63c20f9fac7ed2b8484b964ec3972b40.png](https://i-blog.csdnimg.cn/blog_migrate/d2e3dd19885ace331486916ca820103f.jpeg)
可用的REST外观方法
4.部署Web服务应用程序
部署Web服务的最快的方法是使用Run As或Debug As MyEclipse Server Application操作部署项目。
- 右键单击项目,并选择Run As>MyEclipse Server Application。
- 选择MyEclipse Tomcat,然后单击Finish。
MyEclipse执行以下步骤:
- 将项目打包并以爆炸模式将其部署到应用程序服务器
- 启动应用服务器并加载项目
5.使用REST Web服务资源管理器进行测试
REST Web服务资源管理器在MyEclipse标准订阅级别不可用。如果您是MyEclipse标准订户,请按照使用标准浏览器测试Web服务的说明操作。
- 右键单击项目,并选择Web服务工具>Test with REST Web Services Explorer。
- 注意:如果部署到MyEclipse Tomcat以外的应用服务器,则资源管理器中使用的WADL URL可能包含不正确的端口,从而阻止资源管理器加载WADL文件。更正端口,然后单击Go按钮继续。
- 还可以通过单击工具栏上的Web Services Explorer图标上的下拉箭头,并选择Launch REST Web Services Explorer,打开REST Web Services Explorer。在这种情况下,在继续之前,必须在地址栏中输入WADL文件的路径。
- 将树展开到count节点,并选择countREST方法。
![13b09e7c7800328fbc35b77cfe1446f1.png](https://i-blog.csdnimg.cn/blog_migrate/89f37b2c38d7ed76bf2de6a6efdd8451.jpeg)
- 选择要测试的方法
- 单击测试方法。将打开一个新选项卡,您可以在其中输入信息并运行测试。
![22e460d74a7f44ed2cbd92bede0bb61a.png](https://i-blog.csdnimg.cn/blog_migrate/f719c9abc37369a556e7505973013ea7.jpeg)
- 用于测试方法的countREST选项卡
- 单击运行测试图标。在Raw响应区域中,观察计数为0,因为没有创建帖子。
- 关闭countREST选项卡。
- 在Post节点中选择create方法,然后单击Test method。
- 从create选项卡上的Representation下拉列表中选择application/xml。
- 在Body中,键入application/xml区域,粘贴以下代码,然后单击。实体创建成功。
My First PostWelcome to my new blog
![68d8b4f3a31fc12c1af7acb63d7981f5.png](https://i-blog.csdnimg.cn/blog_migrate/027c0d76850ed7f81d86cda8fe282d3e.jpeg)
- 博客条目测试响应
- 关闭create选项卡。
- 选择countREST方法,并单击Test method。
- 点击。计数现在显示您刚刚发布的条目的1。
- 在Post节点中,选择findAll方法,然后单击Test method。
- 点击。您可以在原始视图中看到您的帖子条目。
![48c3ed361b58f6e1d81eda489d4cf70f.png](https://i-blog.csdnimg.cn/blog_migrate/3978e50c0db406db1be7cd1c4853dd53.jpeg)
更多资讯敬请访问MyEclipse中文网>>