下面是针对“Spring Boot 2.X快速整合jpa过程解析”的完整攻略。
一、前置条件
在开始整合jpa前,请确保你已经按照以下步骤完成了准备工作。
- 搭建好Spring Boot的开发环境,可以使用IDEA、Eclipse或者其他Java开发工具。
- 确保你已经熟悉了Java语言,具备基本的编写Java代码的能力。
- 熟悉Spring Boot框架的基本使用及相关的注解、配置等知识。
- 熟悉jpa框架的基本使用及相关的注解、配置等知识。
二、快速整合jpa
1. 添加依赖
在开始整合jpa前,我们需要先引入jpa相关的依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.3.5.RELEASE</version>
</dependency>
在上面的依赖中,我们引入了spring-boot-starter-data-jpa
,这个依赖包含了jpa的相关依赖。
2. 配置数据库连接
在整合jpa前,我们需要先配置好Spring Boot的数据库连接,以下是一个简单的例子。
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
username: root
password: 123456
以上配置中,我们配置了MySQL数据库的连接信息,包括driver-class-name
、url
、username
和password
等。
3. 创建实体类
在整合jpa前,我们需要创建实体类,并使用jpa的相关注解进行配置,以下是一个简单的例子。
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "name")
private String name;
@Column(name = "age")
private Integer age;
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 Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
在上面的实体类中,我们使用了@Entity
注解将类标记为一个实体类,并通过@Table
注解指定对应的数据库表名,使用@Id
和@GeneratedValue
注解指定主键字段的类型和生成策略,使用@Column
注解指定非主键字段的列名。
4. 创建Repository
在整合jpa前,我们需要创建一个Repository接口,用于对数据库进行CRUD操作,以下是一个简单的例子。
@Repository
public interface UserRepository extends JpaRepository<User, Integer> {
}
在上面的Repository接口中,我们通过@Repository
注解将接口标记为一个Repository,通过继承JpaRepository
实现了对User实体类的基本CRUD操作。
5. 测试
在完成以上工作后,我们可以使用以下代码进行一个简单的测试,来验证我们的整合是否成功。
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserRepositoryTest {
@Autowired
private UserRepository userRepository;
@Test
public void testSave() {
User user = new User();
user.setName("张三");
user.setAge(18);
userRepository.save(user);
assertThat(user.getId()).isNotNull();
}
}
在上面的测试中,我们通过@SpringBootTest
注解启动Spring Boot应用,通过@Autowired
注解注入了我们创建的UserRepository接口,通过调用相应的方法来完成CRUD操作,并使用断言的方式验证操作结果。
三、示例
示例1:整合MySQL数据库
以下是一个完整的示例,演示如何将Spring Boot与MySQL数据库整合。
首先,我们需要在pom.xml
文件中添加以下依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.3.5.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
接着,在application.yaml
文件中配置MySQL数据库的连接信息。
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useSSL=false
username: root
password: 123456
jpa:
hibernate:
ddl-auto: update
show-sql: true
在上面的配置中,我们指定了MySQL连接的驱动名称、URL、用户名、密码等信息,并指定了jpa的相关设置,如生成SQL语句的方式、是否显示SQL语句等。
接着,我们需要在代码中创建实体类以及对应的Repository接口,示例代码如下。
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "name")
private String name;
@Column(name = "age")
private Integer age;
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 Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
@Repository
public interface UserRepository extends JpaRepository<User, Integer> {
}
最后,我们可以通过以下代码进行一个简单的测试。
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserRepositoryTest {
@Autowired
private UserRepository userRepository;
@Test
public void testSave() {
User user = new User();
user.setName("张三");
user.setAge(18);
userRepository.save(user);
assertThat(user.getId()).isNotNull();
}
}
成功运行后,我们可以在MySQL数据库中插入一条数据,并验证插入结果。
示例2:整合H2数据库
以下是一个完整的示例,演示如何将Spring Boot与H2数据库整合。
首先,我们需要在pom.xml
文件中添加以下依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.3.5.RELEASE</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.200</version>
<scope>runtime</scope>
</dependency>
接着,在application.yaml
文件中配置H2数据库的连接信息。
spring:
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:mem:testdb
username: sa
password:
jpa:
hibernate:
ddl-auto: update
show-sql: true
在上面的配置中,我们指定了H2连接的驱动名称、URL、用户名、密码等信息,并指定了jpa的相关设置,如生成SQL语句的方式、是否显示SQL语句等。
接着,我们需要在代码中创建实体类以及对应的Repository接口,示例代码如下。
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "name")
private String name;
@Column(name = "age")
private Integer age;
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 Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
@Repository
public interface UserRepository extends JpaRepository<User, Integer> {
}
最后,我们可以通过以下代码进行一个简单的测试。
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserRepositoryTest {
@Autowired
private UserRepository userRepository;
@Test
public void testSave() {
User user = new User();
user.setName("张三");
user.setAge(18);
userRepository.save(user);
assertThat(user.getId()).isNotNull();
}
}
成功运行后,我们可以在H2数据库中插入一条数据,并验证插入结果。
至此,我们已经完成了Spring Boot与jpa的快速整合,并演示了两个示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Boot 2.X快速整合jpa过程解析 - Python技术站