591 字
3 分钟
部门删除功能
AI 摘要
部门删除功能
定义
部门删除功能根据 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,距今已过 30 天
部分内容可能已过时
评论区
[ 标签 ]
[ 分类 ]
[ 公告 ]
如果你喜欢,那么欢迎来到我的世界!
了解更多[ 音乐 ]
找不到相关结果。
[ contents ]
[ 全部文章 ]