Spring Boot MySQL 对用户信息执行查、增、删操作

79 阅读2分钟

使用RESTful风格对用户信息执行查、增、删的操作

服务器操作用户数据的地址为“/user/{id}”,{id}是用户编号的占位符。

服务器实现以下几个功能:

如果前端向“/user”地址发送GET请求,就返回所有用户的信息。

如果前端向“/user/{id}”地址发送GET请求,服务器返回此id对应的用户信息,如果没有此id的数据就提示“该用户不存在”。

如果前端向“/user/{id}/{name}”地址发送POST请求,就根据{id}和{name}的值创建一个新用户,然后展示当前所有用户的信息。

如果前端向“/user/{id}”地址发送DELETE请求,就删除此id的用户的数据,然后再展示当前所有用户的信息。

实验流程

根据题目要求,数据库需要实现一个用户表,用户表包含用户名和用户id俩个信息。

实验环境 : Windows,mybits-plus,Spring Boot 2.6.3 , MySQL 8.0。

听说 Spring Boot 框架写SQL,有个默认惯例,SQL业务分为四层,pojo层用来创建类映射数据库中的表,Mapper层用来实现一些基本操作,Server层处理一些复杂的业务,Controller 层只管调用Server层即可。

此实验比较简单,不实现Server层了,直接在Controller 层中调用 Mapper 层的操作。

创建用户类

@Data
@AllArgsConstructor
@NoArgsConstructor

public class User {
    int id;
    String name;
}

实现mapper接口

@Mapper
public interface mapper extends BaseMapper<User> {

}

实现 Controller 层业务

@RestController("/")
public class UserController {

    @Autowired
    private mapper mpr;
    @Autowired
    private ResourceUrlProvider mvcResourceUrlProvider;


    // 返回所有用户信息
    @GetMapping("/user")
    public List<User> user() {
        List<User> users =  mpr.selectList(null);
        return users;
    }

    //返回此id对应的信息,如果不存在则返回“此用户不存在”
    @GetMapping("/user/{id}")
    public String  user(@PathVariable int id) {
        QueryWrapper<User> qw = new QueryWrapper<>();
        qw.eq("id", id);
        List<User> user = mpr.selectList(qw);
        if(user != null) {
            return user.toString();
        }
        return "此用户不存在";
    }
    //根据id 和 name 创建一个新用户 然后展示所有用户信息
    @PostMapping("/user/{id}/{name}")
    public List<User> user(@PathVariable int id, @PathVariable String name) {
        User user = new User(id,name);
        mpr.insert(user);
        return mpr.selectList(null);
    }

    //删除此id的用户数据,然后返回所有用户信息
    @DeleteMapping("/user/{id}")
    public List<User> delete(@PathVariable int id) {
        QueryWrapper<User> qw = new QueryWrapper<>();
        qw.eq("id", id);
        mpr.delete(qw);
        return mpr.selectList(null);
    }

}