关于SpringBoot整合JPA方法及配置解析的完整攻略,我给你详细讲解一下。
什么是JPA
JPA(Java Persistence API)是Sun为JavaEE开发量身定制的一套API,用于处理对象与关系数据库的映射(Object Relational Mapping)问题。
通过JPA,我们可以使用Java类和对象来操作关系型数据库,而不需要写直接操作数据库的SQL语句。
Spring Boot整合JPA
SpringBoot整合JPA需要引入以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
其中,spring-boot-starter-data-jpa
是SpringData JPA的起步依赖,包括了一堆其它依赖,如spring-data-jpa
、spring-orm
、hibernate-core
等。
h2
是一个嵌入式数据库,它不需要独立的数据库服务器,可以直接将它嵌入到应用中使用。
配置JPA的数据源和实体扫描
在application.properties
中配置数据源和实体扫描,如下所示:
# H2 数据库相关配置
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:demo_db;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.username=admin
spring.datasource.password=admin
# JPA相关配置
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
# 实体映射扫描
spring.jpa.entity-scan=com.example.demo.entity
创建实体类
创建一个User
实体类,如下所示:
@Entity
public class User {
@Id
@GeneratedValue
private Long id;
private String name;
private String email;
// 省略getters和setters
}
创建JPA接口
创建一个UserRepository
接口,如下所示:
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}
其中,@Repository
用于标记该接口为SpringData JPA的数据访问组件,extends JpaRepository<User, Long>
表示该接口继承了JpaRepository
,泛型的第一个参数是该接口要操作的实体类,第二个参数是该实体类的ID类型。
使用JPA接口
在控制器中注入UserRepository
,如下所示:
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserRepository userRepository;
@GetMapping("")
public List<User> getUsers() {
return userRepository.findAll();
}
@PostMapping("")
public User addUser(@RequestBody User user) {
return userRepository.save(user);
}
}
在getUsers
方法中调用userRepository.findAll()
方法,会返回所有的User
实体对象。
在addUser
方法中调用userRepository.save(user)
方法,会将User
实体对象保存到数据库中。
示例1:查询所有用户
启动应用程序,使用Get方法访问http://localhost:8080/users
,即可查询所有用户。
示例2:添加用户
使用Post方法提交如下JSON数据,即可添加一个用户:
{
"name": "张三",
"email": "zhangsan@example.com"
}
总结
整合SpringBoot和JPA并不复杂,只需要引入依赖和配置数据源就可以愉快的使用JPA了。实现了JPA相关代码后,我们就可以像平常操作普通Java对象一样,使用JPA来操作数据库了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合JPA方法及配置解析 - Python技术站