SpringBoot+MyBatis-Plus用户功能开发(四种常见请求操作)

用户控制器CRUD操作实现

package com.wsx.studyboot.controller;

import com.wsx.studyboot.entity.User;
import com.wsx.studyboot.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 用户控制器
 * 提供用户相关的增删改查REST接口,基于SpringBoot + MyBatis-Plus实现
 * 请求统一前缀:/user
 * @author wsx
 */
@RestController // 标记为REST接口控制器,返回值直接转为JSON,不需要视图页面
@RequestMapping("/user") // 类级别请求路径,所有接口都拼接 /user
public class UserController {

    /**
     * 用户Mapper接口,MyBatis-Plus的数据访问层
     * 内置了selectList、insert、updateById、deleteById等基础CRUD方法
     */
    @Autowired // Spring自动注入UserMapper实例,不需要手动new对象
    private UserMapper userMapper;

    /**
     * 查询所有用户列表接口
     * 请求方式:GET
     * 请求地址:/user/list
     * @return List<User> 用户集合,自动序列化为JSON数组
     */
    @GetMapping("/list") // GET请求,路径 /user/list
    public List<User> getList() {
        // selectList(null):MyBatis-Plus方法,参数为查询条件,null代表查询全部记录
        return userMapper.selectList(null);
    }

    /**
     * 新增用户接口
     * 请求方式:POST
     * 请求地址:/user/add
     * @param user 请求体中的用户JSON数据,@RequestBody将前端JSON转为User实体对象
     * @return String 返回操作结果提示文本
     */
    @PostMapping("/add") // POST请求,路径 /user/add,用于新增数据
    public String Adduser(@RequestBody User user){
        // insert:MyBatis-Plus新增方法,返回受影响的数据库行数
        int rows = userMapper.insert(user);
        // 判断影响行数,大于0代表插入成功
        return rows > 0 ? "添加用户成功" : "添加失败";
    }


    /**
     * 修改用户接口
     * 请求方式:PUT
     * 请求地址:/user/update
     * @param user 请求体JSON转User实体,必须携带id字段,根据id更新记录
     * @return String 返回操作结果提示文本
     */
    @PutMapping("/update") // PUT请求,用于更新已有资源
    public String UpdateUser(@RequestBody User user) {
        // updateById:根据实体中的id更新数据库记录,返回受影响行数
        int rows = userMapper.updateById(user);
        // rows=0 说明数据库没有对应id的数据,更新失败
        return rows > 0 ? "修改成功" : "修改失败(找不到该ID)";
    }

    /**
     * 删除用户接口
     * 请求方式:DELETE
     * 请求地址:/user/delete/{id}
     * @param id 路径变量,@PathVariable 从URL路径中获取id值
     * @return String 返回操作结果提示文本
     */
    @DeleteMapping("/delete/{id}") // DELETE请求,用于删除资源,{id}为路径占位符
    public String deleteUser(@PathVariable Long id){
        // deleteById:根据主键id删除一条记录,返回受影响行数
        int rows = userMapper.deleteById(id);
        return rows > 0 ? "删除成功" : "删除失败(找不到该ID)";
    }

}

参与讨论

回到顶部
日夜切换
在手机上浏览此页面

🎉 欢迎来到本站

我们更新了全新的主题,并优化了移动端体验。
感谢您的支持,祝您阅读愉快!