配置JPA并初始化数据

在前一节中,我们已经硬编码了交换值的响应。它来自数据库。在本节中,我们将创建一个连接到内存数据库的连接。

让我们看看如何将微服务连接到H2数据库。按照以下步骤将微服务连接到JPA内存数据库。

步骤1: 打开currency-exchange-servicepom.xml并添加以下两个依赖项。

<dependency>  
<groupId>com.h2database</groupId>  
<artifactId>h2</artifactId>  
<version>1.4.197</version>  
<scope>test</scope>  
</dependency>  
<dependency>  
<groupId>org.springframework.boot</groupId>  
<artifactId>spring-boot-starter-data-jpa</artifactId>  
<version>2.1.3.RELEASE</version>  
</dependency>  

添加依赖项后,现在我们需要定义实体。

步骤2: 打开ExchangeValue.java文件并执行以下操作:

  • 在类级别添加@Entity注解。
  • 使用@Table注解定义表名。
  • 通过在每个字段上添加@Column注解来定义实体的Id,并指定列名。

ExchangeValue.java

package cn.javatiku.microservices.currencyexchangeservice;  
import java.math.BigDecimal;  
import javax.persistence.Column;  
import javax.persistence.Entity;  
import javax.persistence.Id;  
import javax.persistence.Table;  
@Entity  
@Table(name="Exchange_Value")  
public class ExchangeValue   
{  
@Id  
@Column(name="id")  
private Long id;  
@Column(name="currency_from")  
private String from;  
@Column(name="currency_to")  
private String to;  
@Column(name="conversion_multiple")  
private BigDecimal conversionMultiple;  
@Column(name="port")  
private int port;  
//default conatructor  
public ExchangeValue()  
{     
}  
//generating constructor using fields  
public ExchangeValue(Long id, String from, String to, BigDecimal conversionMultiple)   
{  
super();  
this.id = id;  
this.from = from;  
this.to = to;  
this.conversionMultiple = conversionMultiple;  
}  
//generating getters and setters  
public int getPort()   
{  
return port;  
}  
public void setPort(int port)   
{  
this.port = port;  
}  
public Long getId()   
{  
return id;  
}  
public String getFrom()   
{  
return from;  
}  
public String getTo()   
{  
return to;  
}  
public BigDecimal getConversionMultiple()   
{  
return conversionMultiple;  
}  
}  

我们已经创建了实体,现在我们需要将一些数据插入数据库。

步骤3: 创建一个data.sql文件以插入数据到数据库中。

右键单击src/main/resources文件夹 -> New -> File -> 提供名称data.sql -> 完成

步骤4:data.sql文件中插入数据。我们插入了以下数据:

data.sql

insert into exchange_value(id,currency_from,currency_to,conversion_multiple,port)  
values(10001,'USD', 'INR' ,65,0);  
insert into exchange_value(id,currency_from,currency_to,conversion_multiple,port)  
values(10002,'EUR', 'INR' ,75,0);  
insert into exchange_value(id,currency_from,currency_to,conversion_multiple,port)  
values(10003,'AUD', 'INR' ,25,0);  

步骤5: 打开application.properties文件并启用H2控制台,配置URL数据源。默认的JDBC URL是testdb。我们可以指定自己的JDBC URL。

我们指定的JDBS URL是jdbc:h2:mem:javatiku

application.properties

spring.application.name=currency-exchange-service  
server.port=8000  
spring.jpa.show-sql=true  
spring.h2.console.enabled=true  
spring.datasource.platform=h2  
spring.datasource.url=jdbc:h2:mem:javatiku  

步骤6: 重新启动应用程序。

步骤7: 打开浏览器并输入URI http://localhost:8000/currency-exchange/from/USD/to/INR。它返回响应,如下所示:

configure-jpa-and-initialized-data.png

我们还可以在数据库中看到在data.sql文件中插入的数据。要打开H2控制台,我们需要执行以下操作:

  • 在浏览器中输入http://localhost:8000/h2-console。它会显示以下页面:

configure-jpa-and-initialized-data-1.png

注意: JDBC URL必须与您在application.properties文件中指定的URL相同。不要在User NamePassword字段中输入任何内容。默认的用户名是sa

现在点击Test Connection按钮;如果连接成功,它会显示测试成功的消息。

configure-jpa-and-initialized-data-2.png

步骤8: 点击Connect按钮。它会在页面的左侧显示创建的表。

configure-jpa-and-initialized-data-3.png

步骤9: 运行以下查询以查看数据。

SELECT * FROM EXCHANGE_VALUE;

它会显示我们在data.sql文件中插入的数据。

configure-jpa-and-initialized-data-4.png

在本节中,我们创建了内存数据库并向其中插入了一些值。

标签: spring, Spring教程, spring cloud, spring cloud教程, spring cloud框架, spring cloud面试题, springcloud组件, springcloud微服务架构, springcloud入门教程, springcloud主件, spring cloud架构图