用户控制器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)";
}
}