国庆节10月1日
--


SpringBoot 实现部门修改功能,含查询回显、路径参数接收与@RequestMapping路径抽取
部门修改功能分为两个步骤:查询回显和修改数据。查询回显根据 ID 获取部门数据用于页面展示,修改数据接收 JSON 请求体更新数据库记录。涉及路径参数接收(@PathVariable)和 @RequestMapping 路径抽取。
/depts/{id}idResult(data 为 Dept 对象)
/depts/1、/depts/2 这种在 URL 中传递的参数称为路径参数。使用 @PathVariable 注解获取:

路径参数名与 Controller 方法形参名称一致时,@PathVariable 的 value 属性可省略。
1// Controller2@GetMapping("/depts/{id}")3public Result getById(@PathVariable Integer id) {4 System.out.println("根据ID查询, id=" + id);5 Dept dept = deptService.getById(id);6 return Result.success(dept);7}8
9// Service10Dept getById(Integer id);11
12// ServiceImpl13public Dept getById(Integer id) {14 return deptMapper.getById(id);15}16
17// Mapper18@Select("select id, name, create_time, update_time from dept where id = #{id}")19Dept getById(Integer id);/depts{"id":1, "name":"研发部"}Result
1// Controller2@PutMapping("/depts")3public Result update(@RequestBody Dept dept) {4 System.out.println("修改部门, dept=" + dept);5 deptService.update(dept);6 return Result.success();7}8
9// Service10void update(Dept dept);11
12// ServiceImpl13public void update(Dept dept) {14 dept.setUpdateTime(LocalDateTime.now()); // 补全更新时间15 deptMapper.update(dept);16}17
18// Mapper19@Update("update dept set name = #{name}, update_time = #{updateTime} where id = #{id}")20void update(Dept dept);部门相关接口请求路径都以 /depts 开头。可将公共路径抽取到类上:
1@Slf4j2@RequestMapping("/depts")3@RestController4public class DeptController {5
6 @GetMapping // → /depts (GET)7 public Result list() { ... }8
9 @DeleteMapping // → /depts (DELETE)10 public Result delete(Integer id) { ... }11
12 @PostMapping // → /depts (POST)13 public Result save(@RequestBody Dept dept) { ... }14
15 @GetMapping("/{id}") // → /depts/{id} (GET)16 public Result getById(@PathVariable Integer id) { ... }17
18 @PutMapping // → /depts (PUT)19 public Result update(@RequestBody Dept dept) { ... }20}完整请求路径 = 类上的 @RequestMapping 的 value + 方法上的映射注解的 value。
@PathVariable 的 value@RequestBody 用于接收 JSON 请求体,@PathVariable 用于接收 URL 路径参数updateTime 字段如果你喜欢,那么欢迎来到我的世界!
了解更多暂未播放



"所有的相遇都是久别重逢。"—— 未知


