SpringBoot教程-将RESTful服务连接到JPA
将RESTful服务连接到JPA
创建用户实体和一些测试数据
让我们创建一个用户实体和一个UserRepository,以便我们可以访问用户的详细信息。
步骤1: 打开pom.xml文件并添加spring-boot-starter-data-jpa依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
步骤2: 通过在User类的上方添加注解@Entity,将User类设置为实体。
@Entity: 实体就是POJO(普通的Java对象)。它表示可以持久化到数据库的数据。它在数据库中表示一个表。每个实体的实例表示表中的一行。我们不能将实体类声明为final。
步骤3: 通过在Id变量的上方添加注解@Id,将Id设置为主键。还要添加注解@GeneratedValue。
@Id: 它定义了下面的成员字段是当前实体的主键。每个实体必须有一个主键,唯一地定义了列。
@GeneratedValue: 可以应用于带有@Id注解的实体的主键属性或字段。它用于支持主键。我们必须将@GeneratedValue注解添加到主键属性上,并选择一个生成类型。默认的生成类型是GenerationType.AUTO。
User.java
package cn.javatiku.server.main.user;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.validation.constraints.Past;
import javax.validation.constraints.Size;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ApiModel(description="All details about the user")
@Entity
public class User
{
//making Id as primary key
@Id
@GeneratedValue
private Integer id;
@Size(min=5, message="Name should have atleast 5 characters")
@ApiModelProperty(notes="name should have atleast 5 characters")
private String name;
@Past
@ApiModelProperty(notes="Birth date should be in the past")
private Date dob;
//default constructor
protected User()
{
}
public User(Integer id, String name, Date dob)
{
super();
this.id = id;
this.name = name;
this.dob = dob;
}
public Integer getId()
{
return id;
}
public void setId(Integer id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public Date getDob()
{
return dob;
}
public void setDob(Date dob)
{
this.dob = dob;
}
@Override
public String toString()
{
//return "User [id=" + id + ", name=" + name + ", dob=" + dob + "]";
return String.format("User [id=%s, name=%s, dob=%s]", id, name, dob);
}
}
在继续下一步之前,请删除或注释掉 pom.xml 中的基本安全性依赖项。
步骤4: 打开application.properties文件并启用H2控制台,以便我们可以查看插入表中的数据。
spring.h2.console.enabled=true
我们还需要启用SQL日志记录以查看正在执行的SQL语句。当语句执行时,它会在日志中启动SQL日志记录。
spring.jpa.show-sql=true
现在重新启动应用程序以应用更改。我们可以在下面的图像中看到表已经被创建。
步骤5: 我们需要创建一个SQL文件来在user表中插入数据。
右键单击文件夹src/main/resource -> New ->Other -> 选择SQL File -> 输入文件名data.sql -> 点击完成。
步骤6: 在data.sql文件中,插入数据到user表中。我们插入了以下数据:
insert into user values(1, sysdate(), 'John');
insert into user values(2, sysdate(),'Robert');
insert into user values(3, sysdate(), 'Andrew');
运行应用程序。
步骤7: 打开浏览器,键入 http://localhost:8080/h2-console
以连接H2控制台。确保它的JDBC URL为 jdbc:h2:mem:testdb。不要在密码字段中输入任何内容。
步骤8: 点击Connect按钮登录。我们创建的表将显示在页面的左侧。
步骤10: 输入查询 select * from user;
它会显示我们插入的记录表。