Spring的数据访问:Spring Data和JPA | 云原生应用开发系列2

声明

  • 本文的内容仅限于技术探讨,不能作为指导生产环境的素材;
  • 鼓励读者购买红帽培训获得更多系统性的培训。
  • 由于篇幅有限,文章中的步骤仅展现了关键的部分。

在本实验中,将进行Spring Data与JPA一起使用来检索数据并将其保存到数据存储区。

启动JBoss Developer Studio。

选择文件→导入。

在“导入”对话框中,选择“Maven”→“现有Maven项目”,然后单击“下一步”。

单击“浏览”并导航到〜/ appmod_foundations_training / spring / lab2。

导入后,请验证您是否看到product-catalog-lab2项目:

用于测试的Bootstrap JPA和H2数据库

打开Maven pom.xml文件。

打开src / main / resources / application.properties文件。

将以下条目添加到此文件,这是应用连接数数据路的参数配置:

创建单元测试

在本节中,您将为ProductCatalogService创建单元测试。

在JBoss Developer Studio中,导航到项目目录并选择src / test / java。

展开com.redhat.coolstore.productcatalog包。

创建名为ProductCatalogJPATests的JPA Test类。

添加以下代码:

虽然此测试本身不测试任何内容,但@DataJpaTest会引导JPA环境,因此如果测试成功运行,您就会知道JPA环境已正确配置并正常工作。

测试JPA bootstraps是否成功:

添加产品实体和示例数据

在本节中,您将创建一个产品实体并添加样本数据。

在JBoss Developer Studio中,导航到项目目录并选择src / main / java。

展开com.redhat.coolstore.productcatalog包。

添加一个名为Product的新类。

添加以下代码:

源码入如下:

package com.redhat.coolstore.productcatalog;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

@Entity

public class Product {

@Id

@GeneratedValue(strategy=GenerationType.AUTO)

private Long itemId;

private String name;

@Column(length=2000)

private String description;

private double price;

public Product() {}

public Long getItemId() {

return itemId;

}

public void setItemId(Long itemId) {

this.itemId = itemId;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getDescription() {

return description;

}

public void setDescription(String description) {

this.description = description;

}

public double getPrice() {

return price;

}

public void setPrice(double price) {

this.price = price;

}

}

添加一个新文件src / main / resources / import.sql,其中包含以下内容:

验证是够成功:

检查控制台输出并验证您是否看到与这些类似的行,表明数据已加载:

创建数据库存储库接口并实现testFindAll

在JBoss Developer Studio中,导航到项目目录并选择src / main / java。

展开com.redhat.coolstore.productcatalog包。

添加一个名为ProductRepository的新接口。

添加以下代码:

在JBoss Developer Studio中,导航到项目目录并选择src / test / java。

打开ProductCatalogJPATests并将ProductRepository注入类变量:

进行验证:

将自定义方法添加到产品存储库

在本节中,您将向ContentRepository添加自定义findByName方法,该方法按名称返回产品。

打开ProductRepository类并添加以下接口方法:

打开ProductCatalogJPATests.java并添加以下测试:

进行验证:

添加测试用例

在本节中,您将添加一个用于创建和删除条目的测试用例。

打开ProductCatalogJPATests.java并添加以下测试:

进行验证:

将REST服务更改为使用产品存储库

在本节中,您将更改REST服务以使用ProductRepository并返回产品列表。

打开ProductCatalogService并将ProductRepository注入类变量:

添加新的list方法以返回productRepository.findAll()的结果:

访问应用:

魏新宇

  • "大魏分享"运营者、红帽资深解决方案架构师
  • 专注开源云计算、容器及自动化运维在金融行业的推广
  • 拥有MBA、ITIL V3、Cobit5、C-STAR、TOGAF9.1(鉴定级)等管理认证。
  • 拥有红帽RHCE/RHCA、VMware VCP-DCV、VCP-DT、VCP-Network、VCP-Cloud、AIX、HPUX等技术认证