部门修改功能

部门修改功能

2026年5月21日·#后端基础SpringBoot/MyBatis/Java/路径参数/PathVariable/RequestMapping/Tlias·611 字 3 分钟
浏览量加载中...
AI 摘要

SpringBoot 实现部门修改功能,含查询回显、路径参数接收与@RequestMapping路径抽取

部门修改功能#

定义#

部门修改功能分为两个步骤:查询回显和修改数据。查询回显根据 ID 获取部门数据用于页面展示,修改数据接收 JSON 请求体更新数据库记录。涉及路径参数接收(@PathVariable)和 @RequestMapping 路径抽取。

查询回显#

接口描述#

  • 请求方式:GET
  • 请求路径:/depts/{id}
  • 请求参数:路径参数 id
  • 响应数据:Result(data 为 Dept 对象)

实现思路#

查询回显三层架构

路径参数接收#

/depts/1/depts/2 这种在 URL 中传递的参数称为路径参数。使用 @PathVariable 注解获取:

路径参数接收

路径参数名与 Controller 方法形参名称一致时,@PathVariable 的 value 属性可省略。

代码实现#

// Controller
@GetMapping("/depts/{id}")
public Result getById(@PathVariable Integer id) {
System.out.println("根据ID查询, id=" + id);
Dept dept = deptService.getById(id);
return Result.success(dept);
}
// Service
Dept getById(Integer id);
// ServiceImpl
public Dept getById(Integer id) {
return deptMapper.getById(id);
}
// Mapper
@Select("select id, name, create_time, update_time from dept where id = #{id}")
Dept getById(Integer id);

修改数据#

接口描述#

  • 请求方式:PUT
  • 请求路径:/depts
  • 请求参数:JSON 格式 {"id":1, "name":"研发部"}
  • 响应数据:Result

实现思路#

修改数据三层架构

代码实现#

// Controller
@PutMapping("/depts")
public Result update(@RequestBody Dept dept) {
System.out.println("修改部门, dept=" + dept);
deptService.update(dept);
return Result.success();
}
// Service
void update(Dept dept);
// ServiceImpl
public void update(Dept dept) {
dept.setUpdateTime(LocalDateTime.now()); // 补全更新时间
deptMapper.update(dept);
}
// Mapper
@Update("update dept set name = #{name}, update_time = #{updateTime} where id = #{id}")
void update(Dept dept);

@RequestMapping 路径抽取#

部门相关接口请求路径都以 /depts 开头。可将公共路径抽取到类上:

@Slf4j
@RequestMapping("/depts")
@RestController
public class DeptController {
@GetMapping // → /depts (GET)
public Result list() { ... }
@DeleteMapping // → /depts (DELETE)
public Result delete(Integer id) { ... }
@PostMapping // → /depts (POST)
public Result save(@RequestBody Dept dept) { ... }
@GetMapping("/{id}") // → /depts/{id} (GET)
public Result getById(@PathVariable Integer id) { ... }
@PutMapping // → /depts (PUT)
public Result update(@RequestBody Dept dept) { ... }
}

完整请求路径 = 类上的 @RequestMapping 的 value + 方法上的映射注解的 value。

常见场景#

  • 编辑表单的”回显-修改-保存”两阶段交互
  • RESTful 风格中 PUT + 路径参数的组合使用
  • 同类接口的公共路径抽取,减少重复代码

注意事项#

  • 路径参数名与形参名一致时可省略 @PathVariable 的 value
  • @RequestBody 用于接收 JSON 请求体,@PathVariable 用于接收 URL 路径参数
  • 修改操作每次都应更新 updateTime 字段
  • 抽取公共路径到类上后,方法上的路径只需写差异部分
最后更新于 2026-05-21,距今已过 89 天

部分内容可能已过时

评论区

[ 标签 ]
# AI5# AI 编程2# AI工具1# Ajax2# Apifox1# AstrBot2# Astro2# CC Switch1# CDN2# Claude Code1# claudecode2# ClaudeCode1# CloudFlare2# Cloudflare1# CloudFlare-ImgBed1# coc3# CSS6# DeepSeek2# deepseek2# DELETE1# Docker1# EdgeOne3# Gist1# git1# GitHub1# hexo-circle-of-friends1# HTML6# HTTP2# Java23# java13# JavaScript5# JDBC3# JSON1# JUnit1# Logback1# Maven6# Mybatis1# MyBatis4# MySQL6# MySql1# NapCat1# Obsidian3# OpenCode3# ORM1# PathVariable1# PicGo1# py2# RequestBody1# RequestMapping1# RESTful风格1# skills1# Slf4j1# SpringBoot11# SQL2# Svelte2# TailwindCSS1# Telegram2# Tlias2# Vercel1# Vue7# Waline3# WebDAV1# Web基础6# WinSCP1# YAML1# 三层架构1# 中二宣言1# 书籍1# 使用文档9# 写作1# 刷步数1# 前端32# 动态1# 动漫1# 单词2# 博客6# 博客工作流1# 博客开发2# 参数接收1# 友链1# 反思2# 图床4# 地图1# 备份1# 奇思妙想1# 存储1# 学习方法1# 宝塔面板3# 宝宝9# 导航栏1# 工具2# 开发1# 开发规范1# 开心1# 影视1# 微信1# 性能优化2# 总结1# 想法8# 感悟9# 指南1# 插件3# 故障排除1# 效率工具2# 教程7# 数据库10# 斩神1# 日常61# 日志框架1# 朋友圈1# 朱元璋1# 模板1# 测试1# 游戏1# 生活迁移1# 电影2# 碎碎念1# 视觉识别1# 网络教室1# 羊毛1# 脚本1# 脚本工具1# 自动化2# 蓝奏云1# 订阅推荐1# 记录1# 评论系统1# 词根1# 词缀1# 说说1# 足迹1# 跑步2# 路径参数1# 转载1# 运动1# 部落冲突1# 配置1# 随机图1# 音乐3# 音标1# 饮食1# 驼峰命名1# 高德地图1
[ 公告 ]

如果你喜欢,那么欢迎来到我的世界!

了解更多
[ 音乐 ]
封面

音乐

暂未播放

0:000:00
暂无歌词
找不到相关结果。
[ contents ]
[ 全部文章 ]
工具