📜  在UserResource上更新POST和DELETE方法以使用JPA(1)

📅  最后修改于: 2023-12-03 15:37:39.132000             🧑  作者: Mango

在UserResource上更新POST和DELETE方法以使用JPA

在本教程中,我们将在UserResource类中更新POST和DELETE方法,以便使用JPA与数据库进行交互。我们将使用Spring Boot和H2数据库来简化示例。

准备工作
  1. 确保你已经安装了Java和Maven。
  2. 创建一个Spring Boot应用程序,可以使用Spring Initializr。
  3. 添加以下依赖项到pom.xml文件中:
<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>
POST方法

我们将更新UserResource类中的POST方法,以便创建新用户并将其保存到数据库中。要做到这一点,我们将使用Spring Data JPA和H2数据库。

在开始编码之前,请确保你具有以下内容:

  1. 已创建实体类User。
  2. 已创建UserRepository接口继承了CrudRepository。
  3. 已创建DTO类UserDTO 用于将HTTP请求映射到Java对象。

在以下代码片段中,我们将使用UserDTO来创建新用户。我们将其转换为User对象,当保存到数据库时,该对象将自动转换为数据库实体:

@Autowired
private UserRepository userRepository;

@PostMapping
public ResponseEntity<User> createUser(@Valid @RequestBody UserDTO userDTO) {
   User user = new User(userDTO.getName(), userDTO.getEmail());
   userRepository.save(user);
   return ResponseEntity.ok(user);
}
DELETE方法

我们将更新UserResource类中的DELETE方法,以便从数据库中删除用户。要做到这一点,我们将使用Spring Data JPA和H2数据库。

在开始编码之前,请确保你具有以下内容:

  1. 已创建实体类User。
  2. 已创建UserRepository接口继承了CrudRepository。

在以下代码片段中,我们将使用用户ID查找并删除用户。如果用户不存在,则返回NOT FOUND响应,否则返回OK响应。

@Autowired
private UserRepository userRepository;

@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteUser(@PathVariable Long id) {
   Optional<User> optionalUser = userRepository.findById(id);
   if (optionalUser.isPresent()) {
       userRepository.deleteById(id);
       return ResponseEntity.ok().build();
   } else {
       return ResponseEntity.notFound().build();
   }
}

现在我们已经更新了UserResource类的POST和DELETE方法,以便使用JPA与数据库进行交互。这样,我们就可以使用Spring Boot和H2数据库,以简单而直观的方式管理用户实体了。