部门删除功能

部门删除功能

2026年5月21日·#后端基础SpringBoot/MyBatis/Java/参数接收/DELETE·591 字 3 分钟
浏览量加载中...
AI 摘要

SpringBoot 实现部门删除功能,含简单参数接收的三种方式与三层架构实现

部门删除功能#

定义#

部门删除功能根据 ID 删除指定部门数据。核心知识点包括简单参数的接收方式(HttpServletRequest、@RequestParam、形参自动绑定)以及 MyBatis 的 DELETE 注解使用。

接口描述#

  • 请求方式:DELETE
  • 请求路径:/depts
  • 请求参数:id(Integer,部门 ID)
  • 响应数据:Result(统一响应结果)

实现思路#

删除部门三层架构

  • Controller 层:接收前端传递的部门 ID,调用 Service 删除
  • Service 层:调用 Mapper 接口方法,执行删除操作
  • Mapper 层:执行 DELETE SQL 语句

简单参数接收#

在 Controller 中接收前端传递的简单参数(如 ?id=1),有三种方案:

方案一:HttpServletRequest(不推荐)#

@DeleteMapping("/depts")
public Result delete(HttpServletRequest request) {
String idStr = request.getParameter("id");
int id = Integer.parseInt(idStr);
System.out.println("根据ID删除部门: " + id);
return Result.success();
}

需要手动获取参数并进行类型转换,较为繁琐,项目开发很少使用。

方案二:@RequestParam 注解#

@DeleteMapping("/depts")
public Result delete(@RequestParam("id") Integer deptId) {
System.out.println("根据ID删除部门: " + deptId);
return Result.success();
}

@RequestParam 的 value 属性需与前端传递的参数名一致。required 属性默认为 true,参数必须传递;若可选,设置为 false。

方案三:形参名匹配(推荐)#

@DeleteMapping("/depts")
public Result delete(Integer id) {
System.out.println("根据ID删除部门: " + id);
return Result.success();
}

请求参数名与形参变量名相同时,直接定义方法形参即可接收,无需额外注解。

代码实现#

Controller 层#

@DeleteMapping("/depts")
public Result delete(Integer id) {
System.out.println("根据id删除部门, id=" + id);
deptService.deleteById(id);
return Result.success();
}

Service 层#

// DeptService 接口
void deleteById(Integer id);
// DeptServiceImpl 实现
public void deleteById(Integer id) {
deptMapper.deleteById(id);
}

Mapper 层#

@Delete("delete from dept where id = #{id}")
void deleteById(Integer id);
  • Mapper 接口方法形参只有一个普通类型参数时,#{…} 里面的属性名可以随便写(如 #{id}#{value}
  • DML 语句执行完毕有返回值(影响的记录数),可将方法返回值设为 Integer,但通常不需要,设为 void 即可

常见场景#

  • 列表页行内删除按钮,传递行 ID 调用删除接口
  • 批量删除时循环调用或扩展为接收 ID 列表

注意事项#

  • 推荐使用方案三(形参名匹配),代码最简洁
  • @RequestParam 的 required 默认为 true,参数缺失会报错
  • DML 语句的 #{...} 在单参数时属性名可任意填写
  • 实际项目中删除前应做关联校验(如该部门下是否有员工)
最后更新于 2026-05-21,距今已过 88 天

部分内容可能已过时

评论区

[ 标签 ]
# 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# 想法7# 感悟9# 指南1# 插件3# 故障排除1# 效率工具2# 教程7# 数据库10# 斩神1# 日常60# 日志框架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 ]
[ 全部文章 ]
工具