Javaweb之SpringBootWeb案例员工管理之删除员工的详细解析
3.3 删除员工
查询员完成之后,我们继续开发新的功能:删除员工。
3.3.1 需求

当我们勾选列表前面的复选框,然后点击 "批量删除" 按钮,就可以将这一批次的员工信息删除掉了。也可以只勾选一个复选框,仅删除一个员工信息。
问题:我们需要开发两个功能接口吗?一个删除单个员工,一个删除多个员工
答案:不需要。 只需要开发一个功能接口即可(删除多个员工包含只删除一个员工)
3.3.2 接口文档
删除员工
-
基本信息
请求路径:/emps/{ids} 请求方式:DELETE 接口描述:该接口用于批量删除员工的数据信息 -
请求参数
参数格式:路径参数
参数说明:
参数名 类型 示例 是否必须 备注 ids 数组 array 1,2,3 必须 员工的id数组 请求参数样例:
/emps/1,2,3
-
响应数据
参数格式:application/json
参数说明:
参数名 类型 是否必须 备注 code number 必须 响应码,1 代表成功,0 代表失败 msg string 非必须 提示信息 data object 非必须 返回的数据 响应数据样例:
{"code":1,"msg":"success","data":null }
3.3.3 思路分析

接口文档规定:
前端请求路径:/emps/{ids}
前端请求方式:DELETE
问题1:怎么在controller中接收请求路径中的路径参数?
@PathVariable问题2:如何限定请求方式是delete?
@DeleteMapping问题3:在Mapper接口中,执行delete操作的SQL语句时,条件中的id值是不确定的是动态的,怎么实现呢?
Mybatis中的动态SQL:foreach
3.3.4 功能开发
通过查看接口文档:删除员工
请求路径:/emps/{ids}
请求方式:DELETE
请求参数:路径参数 {ids}
响应数据:json格式
EmpController
@Slf4j
@RestController
@RequestMapping("/emps")
public class EmpController {
@Autowiredprivate EmpService empService;
//批量删除@DeleteMapping("/{ids}")public Result delete(@PathVariable List<Integer> ids){empService.delete(ids);return Result.success();}
//条件分页查询@GetMappingpublic Result page(@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "10") Integer pageSize,String name, Short gender,@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) {//记录日志log.info("分页查询,参数:{},{},{},{},{},{}", page, pageSize,name, gender, begin, end);//调用业务层分页查询功能PageBean pageBean = empService.page(page, pageSize, name, gender, begin, end);//响应return Result.success(pageBean);}
}
EmpService
public interface EmpService {
/*** 批量删除操作* @param ids id集合*/void delete(List<Integer> ids);
//省略...
}
EmpServiceImpl
@Slf4j
@Service
public class EmpServiceImpl implements EmpService {@Autowiredprivate EmpMapper empMapper;
@Overridepublic void delete(List<Integer> ids) {empMapper.delete(ids);}
//省略...
}
EmpMapper
@Mapper
public interface EmpMapper {//批量删除void delete(List<Integer> ids);
//省略...
}
EmpMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itheima.mapper.EmpMapper">
<!--批量删除员工--><select id="delete">delete from emp where id in<foreach collection="ids" item="id" open="(" close=")" separator=",">#{id}</foreach></select>
<!-- 省略... -->
</mapper>
3.3.5 功能测试
功能开发完成后,重启项目工程,打开postman,发起DELETE请求:

控制台SQL语句:
3.3.6 前后端联调
打开浏览器,测试后端功能接口:



相关文章:
Javaweb之SpringBootWeb案例员工管理之删除员工的详细解析
3.3 删除员工 查询员完成之后,我们继续开发新的功能:删除员工。 3.3.1 需求 当我们勾选列表前面的复选框,然后点击 "批量删除" 按钮,就可以将这一批次的员工信息删除掉了。也可以只勾选一个复选框,仅删除一…...
写点东西《什么是网络抓取?》
写点东西《什么是网络抓取?》 什么是网络抓取? 网络抓取合法吗? 什么是网络爬虫,它是如何工作的? 网络爬虫示例 网络抓取工具 结论 您是否曾经想同时比较多个网站上同一件商品的价格?或者自动提取您最喜欢的…...
使用C#操作文件:一个实际案例——替换文件中的IP地址
标题: 使用C#操作文件:一个实际案例——替换文件中的IP地址 介绍: 欢迎阅读我的最新博客!今天,我们将探讨如何使用C#来处理一个实际的编程挑战:读取一个配置文件并替换其中的IP地址。这是一个非常常见的…...
Zookeeper简介
系列文章目录 Zookeeper安装教程 目录 一、Zookeeper简介 二、Zookeeper的数据结构 三、CPA理论 四、BASE 理论 五、ZooKeeper的特性 前言 这是我的学习笔记,以便后面翻阅。 一、Zookeeper简介 ZooKeeper是一个分布式的、开放源码的分布式应用程序协调服务&a…...
第33集《佛法修学概要》
请大家打开讲义第八十七页。我们讲到六度法门,这是菩萨道的六度。 佛教的修学,从浅入深,大致上可以分成三个主要的次第: 我们刚开始修学佛法的时候,第一个修学的重点,叫作“见山是山,见水是水…...
C++ 之LeetCode刷题记录(十三)
😄😊😆😃😄😊😆😃 开始cpp刷题之旅。 依旧是追求耗时0s的一天。 70. 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可…...
容器技术1-容器与镜像简介
目录 1、容器与虚拟化 2、容器发展历程 3、镜像简介 4、镜像原理 (1)分层存储 (2)写时复制 (3)内容寻址 (4)联合挂载 1、容器与虚拟化 容器技术在操作系统层面实现了对计算机…...
openssl3.2 - 官方demo学习 - smime - smdec.c
文章目录 openssl3.2 - 官方demo学习 - smime - smdec.c概述笔记END openssl3.2 - 官方demo学习 - smime - smdec.c 概述 从pem证书中得到x509*和私钥, 用私钥和证书解密MIME格式的PKCS7密文, 并保存解密后的明文 MIME的数据操作, 都是PKCS7相关的 笔记 /*! \file smdec.c …...
vue中改变v-html中包含body标签的样式修改方法
vue-改变body的css样式 beforeCreate() {document.querySelector(body).setAttribute(style, background-color:#f4f4f4; color:#666666;)}, beforeDestroy() {document.body.removeAttribute(style)},在方法里加这个 document.querySelector(body).setAttribute(style, backg…...
港科夜闻|香港科大团队研发多功能,可重构和抗破坏单线感测器阵列
关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科大团队研发多功能、可重构和抗破坏单线感测器阵列。研究人员开发出一种受人类听觉系统启发的感测器阵列设计技术。透过模仿人耳根据音位分布来区分声音的能力,这种新型感测器阵列方法可能优化感测器阵列…...
线程池的简单介绍及使用
线程池 线程池的参数介绍拒绝策略 线程池的任务处理流程使用Executors创建常见的线程池 线程池的参数介绍 corePoolSize: (核心线程数)这是线程池中始终存在的线程数,即使这些线程处于空闲状态。maximumPoolSize:(最大线程数) 是线程池允许的最大线程数。keepAliveT…...
使用Python的pygame库实现下雪的效果
使用Python的pygame库实现下雪的效果 关于Python中pygame游戏模块的安装使用可见 https://blog.csdn.net/cnds123/article/details/119514520 先给出效果图: 源码如下: import pygame import random# 初始化pygame pygame.init()# 设置屏幕尺寸 width…...
qt学习:进度条,水平滑动条,垂直滑动条+rgb调试实战
目录 水平滑动条,垂直滑动条 常用信号 进度条 常用信号 修改进度条 例子 rgb调色 配置ui界面 编写3个进度条的事件函数 添加链表容器和按钮索引 在.h里的类定义 初始化链表容器和按钮索引 编写添加颜色的按钮点击事件函数 效果 水平滑动条,…...
C语言中的浮点数存储
首先明确一个概念:C语言中整形是按照二进制存储在内存中,浮点型是按科学计数法存储在内存中(本质上存储的还是二进制数据0和1)。 如果没看懂这句话,没关系!看完以下正文,你就会豁然开朗&#x…...
Pypputeer自动化
Pyppeteer简介 pyppeteer 是 Python 语言的一个库,它是对 Puppeteer 的一个非官方端口,Puppeteer 是一个 Node 库,Puppeteer是Google基于Node.js开发的一个工具,它提供了一种高层次的 API 来通过 DevTools 协议控制 Chrome 或 Ch…...
selenium爬虫爬取当当网书籍信息 | 最新!
如果对selenium不了解的话可以到下面的链接中看基础内容: selenium爬取有道翻译-CSDN博客 废话不多说了下面是代码并且带有详细的注释: 爬取其他类型的书籍和下面基本上是类似的可以自行更改。 # 导入所需的库 from selenium import webdriver from …...
PTA 7-1 最大子列和问题
给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni1, ..., Nj },其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4,…...
JAVA实现向Word模板中插入Base64图片和数据信息
目录 需求一、准备模板文件二、引入Poi-tl、Apache POI依赖三、创建实体类(用于保存向Word中写入的数据)四、实现Service接口五、Controller层实现 需求 在服务端提前准备好Word模板文件,并在用户请求接口时服务端动态获取图片。数据等信息插…...
深入浅出关于go web的请求路由
文章目录 前言一、是否一定要用框架来使用路由?二、httprouter2.1 httprouter介绍2.2 httprouter原理2.3 路由冲突情况 三、gin中的路由四、hertz中的路由总结 前言 最近重新接触Go语言以及对应框架,想借此机会深入下对应部分。 并分享一下最近学的过程…...
HarmonyOS—开发环境诊断的功能
为了大家开发应用/服务的良好体验,DevEco Studio提供了开发环境诊断的功能,帮助大家识别开发环境是否完备。可以在欢迎界面单击Help > Diagnose Development Environment进行诊断。如果已经打开了工程开发界面,也可以在菜单栏单击Help >…...
Qt5 super module多媒体模块详解:音频、视频、3D图形处理技术
Qt5 super module多媒体模块详解:音频、视频、3D图形处理技术 【免费下载链接】qt5 Qt5 super module 项目地址: https://gitcode.com/gh_mirrors/qt/qt5 Qt5 super module是一个功能强大的跨平台应用开发框架,其中的多媒体模块为开发者提供了全面…...
Cobalt Strike 完整安装指南,含网盘资源与Java配置
Cobalt Strike安装教程 说明: 本教程仅用于学习与研究,请勿用于非法用途。 kali安装java环境参考(如有侵权联系删除) https://blog.csdn.net/weixin_54499207/article/details/144985879?sharetypeblog&shareId144985879&…...
3分钟搞定M3U8视频下载:免费开源工具的终极懒人包
3分钟搞定M3U8视频下载:免费开源工具的终极懒人包 【免费下载链接】N_m3u8DL-CLI-SimpleG N_m3u8DL-CLIs simple GUI 项目地址: https://gitcode.com/gh_mirrors/nm3/N_m3u8DL-CLI-SimpleG 还在为下载在线视频发愁吗?那些藏在网页里的M3U8格式视频…...
ContentBranch+CFBranch混合电影推荐模型|全网独家复现,深度学习实战篇 引入双分支融合架构,兼顾内容特征与协同信号、助力冷启动缓解、数据稀疏性优化、推荐精度有效涨点
目录 一、前言:混合推荐模型的核心价值与行业痛点 二、模型核心原理(全网独家拆解,通俗易懂) 2.1 整体架构逻辑 2.2 ContentBranch(内容分支)原理详解 2.3 CFBranch(协同过滤分支)原理详解 2.4 特征融合与预测层原理 2.5 模型优势总结 三、环境搭建(全平台适配…...
NVIDIA Profile Inspector完整指南:免费解锁显卡隐藏性能的终极工具
NVIDIA Profile Inspector完整指南:免费解锁显卡隐藏性能的终极工具 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 你是否曾经想过,为什么你的NVIDIA显卡明明性能不错ÿ…...
Linux调度器演进:从O(1)到CFS再到EEVDF
Linux 进程调度演化史:从 O(n) 到 CFS 再到 EEVDF,30 年调度器的三次跃迁 进程调度是操作系统的脉搏。这篇文章不堆概念,带你从 Linux 0.01 走到内核 6.6,看懂调度器为什么这样设计,以及每次重构到底解决了什么问题。 …...
circumflex 语法高亮功能详解:让评论和文章更易读的终极指南
circumflex 语法高亮功能详解:让评论和文章更易读的终极指南 【免费下载链接】circumflex 🌿 Its Hacker News in your terminal 项目地址: https://gitcode.com/gh_mirrors/ci/circumflex circumflex 是一个强大的终端 Hacker News 浏览器&#…...
MediaCrawler:企业级社交媒体数据采集的终极架构实践
MediaCrawler:企业级社交媒体数据采集的终极架构实践 【免费下载链接】MediaCrawler 小红书笔记 | 评论爬虫、抖音视频 | 评论爬虫、快手视频 | 评论爬虫、B 站视频 | 评论爬虫、微博帖子 | 评论爬虫、百度贴吧帖子 | 百度贴吧评论…...
2026最权威一键生成论文工具榜单:这些被高校和导师偷偷推荐的软件你用了吗
一键生成论文工具正在重塑学术写作的效率与质量。随着AI技术的不断突破,越来越多高校、导师及科研机构开始关注并推荐这些高效、合规的智能写作助手。依托权威检测平台数据、多所高校实测反馈及用户真实评价,本文将为您揭晓2026年最值得信赖的一键生成论…...
性价比高的国产PLM软件公司
在制造业领域,不少企业都面临着研发效率低下、协同困难等问题。比如某电子制造企业,研发部门与生产部门之间信息沟通不畅,图纸版本管理混乱,导致产品研发周期延长,生产成本增加,新品上市时间比预期晚了近30…...

