📜  Spring Boot CRUD操作(1)

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

Spring Boot CRUD操作

在Web开发的过程中,CRUD操作是经常使用的基本操作。CRUD分别代表增加(Create)、读取查询(Retrieve)、更新(Update)、删除(Delete)。

本文将介绍如何使用Spring Boot实现CRUD操作。

准备工作

在开始实现之前,我们需要完成以下准备工作:

  1. 确保已经安装好Java和Maven,并配置好环境变量。
  2. 创建一个基于Maven的Spring Boot项目。
  3. 添加依赖,包括Spring Web、Spring Data JPA、MySQL Driver。
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
</dependency>
  1. 在application.properties文件中配置数据库连接信息。
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
实现操作
创建(Create)

在这里,我们创建一个User实体类和一个UserController,并实现创建用户的功能。

User实体类包含了id、name、age三个属性。

@Entity
@Table(name = "user")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "name")
    private String name;

    @Column(name = "age")
    private Integer age;

    // getter, setter ...
}

UserController包含了一个POST接口,用于创建用户。

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @PostMapping("/")
    public User createUser(@RequestBody User user) {
        return userRepository.save(user);
    }
}

在上面的代码中,@RestController注解用于声明这是一个REST风格的Controller,在@RequestMapping中设置了根路径为/users,即所有接口都是在/users路径下。

createUser方法使用了@RequestBody注解,用于从请求体中获取数据。userRepository则是通过@Autowired注解注入的。

在完成上述代码后,我们就可以使用POST请求创建一个用户了,例如提交以下JSON数据:

{
  "name": "Jack",
  "age": 21
}
读取查询(Retrieve)

在这里,我们实现两个读取查询的功能:查询所有用户和查询单个用户。

首先是查询所有用户,我们需要实现一个GET接口。

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @GetMapping("/")
    public List<User> getUsers() {
        return userRepository.findAll();
    }
}

在上面的代码中,getUsers方法使用了@GetMapping注解,用于声明这是一个GET请求的接口。userRepository的findAll方法用于查询所有用户并返回。

接下来是查询单个用户,我们需要实现一个GET接口。

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @GetMapping("/{id}")
    public User getUser(@PathVariable Long id) {
        return userRepository.findById(id).orElse(null);
    }
}

在上面的代码中,getUser方法的参数中,@PathVariable注解用于获取路径中的id参数。userRepository的findById则用于根据id查询单个用户并返回。

更新(Update)

在这里,我们实现修改用户信息的功能。

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @PutMapping("/{id}")
    public User updateUser(@PathVariable Long id, @RequestBody User user) {
        User oldUser = userRepository.findById(id).orElse(null);
        if (oldUser != null) {
            oldUser.setName(user.getName());
            oldUser.setAge(user.getAge());
            return userRepository.save(oldUser);
        } else {
            return null;
        }
    }
}

在上面的代码中,updateUser方法的参数中,@PathVariable注解用于获取路径中的id参数,@RequestBody注解用于获取请求中的User参数。

userRepository的findById方法用于查询指定id的用户信息,并将用户信息更新为新的参数,并返回更新后的用户信息。

删除(Delete)

在这里,我们实现删除用户的功能。

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @DeleteMapping("/{id}")
    public String deleteUser(@PathVariable Long id) {
        userRepository.deleteById(id);
        return "success";
    }
}

在上面的代码中,deleteUser方法的参数中,@PathVariable注解用于获取路径中的id参数。

userRepository的deleteById方法用于删除指定id的用户信息,删除成功后返回"success"。

测试操作

完成以上的代码后,我们可以使用Postman进行测试。

以创建用户为例,我们需要使用POST请求访问http://localhost:8080/users/,并提交以下JSON数据作为请求体:

{
  "name": "Jack",
  "age": 21
}

如果返回以下响应,表示创建成功:

{
  "id": 1,
  "name": "Jack",
  "age": 21
}

同样的,我们可以使用其他HTTP方法测试其他功能。

总结

在本文中,我们使用Spring Boot实现了一个简单的CRUD操作,并使用Postman进行了测试。CRUD操作是Web开发中非常基础的操作,这对于初学者来说是一项良好的练习。随着更多的实践和学习,我们可以学习如何实现更复杂的操作和更高效的实现方式。