在 MyBatis 中,可以使用相同的 SQL 映射语句进行批量删除和单个删除。

目录

前端代码: 

后端代码:

controller

 service层接口

service接口的实现

mapper层接口

xml

sql

效果:(点击操作列的删除,可删除一行数据。勾选多个多选框再点击批量删除,可删除多个) 

 

前端代码: 

<el-input placeholder="请输入姓名" v-model="keyWord" style="width: 400px"><el-button slot="append" icon="el-icon-search" @click="selectAllUser()"></el-button>
</el-input>
<el-button type="primary" @click="batchDeleteUser()">批量删除</el-button>
<el-table :data="tableData" border style="width: 100%" @selection-change="handleSelectionChange"><el-table-column type="selection" width="55"></el-table-column><el-table-column prop="name" label="姓名" width="180"></el-table-column><el-table-column prop="phone" label="电话" width="180"></el-table-column><el-table-column prop="grades" label="班级" width="180"></el-table-column><el-table-column prop="operate" label="操作" align="center" fixed="right"><template slot-scope="scope"><!-- (scope.row.userId)用于获取当前行数据对象中的用户ID(或其他字段) --><el-button size="mini" type="text" @click="openDialog(scope.row)">编辑</el-button><el-button size="mini" type="text" @click="deleteOneUser(scope.row)">删除</el-button></template></el-table-column>
</el-table>
export default {data() {return {tableData: [],selectedIds: [], // 存储选中行的ID的数组}},methods: {//判断用户选择了什么handleSelectionChange(selection) {this.selectedIds = selection.map(item => item.id);},//删除用户(删除多个)batchDeleteUser() {this.deleteUser(this.selectedIds)},//删除用户(删除单个)deleteOneUser(row) {let selectIdArray = [];selectIdArray.push(row.id);this.deleteUser(selectIdArray)},//删除用户逻辑deleteUser(selectIdArray) {this.$confirm('确认删除?').then(() => {//点击确定后的逻辑this.$axios({method: "post",url: "http://localhost:8080/api/user/deleteUser",data: selectIdArray}).then((res) => {if (res.data.code === '200') {this.$message({message: res.data.message,type: "success"});this.selectAllUser();} else {this.$message({message: res.data.message,type: "failed"});}})}).catch(() => {});}}
}

后端代码:

  • controller

@RestController
@RequestMapping("/user")
public class UserController {@AutowiredUserService userService;//删除用户@PostMapping("/deleteUser")public Result deleteUser(@RequestBody String[] userArray){return  userService.deleteUser(Arrays.asList(userArray));}}
  •  service层接口
public interface UserService {Result deleteUser(List<String> UserList);
}
  • service接口的实现
public Result deleteUser(List<String> userList) {// 判断userList是否为空if (CollectionUtils.isEmpty(userList)) {// 如果是空,则返回删除成功信息和删除数量为0return Result.succeed("删除成功", 0);}// 调用userMapper.deleteUser方法来删除指定的用户int count = userMapper.deleteUser(userList);// 判断删除是否成功if (count == userList.size()) {// 如果全部删除成功,则返回删除成功信息和删除的用户数量return Result.succeed("删除成功", count);} else {// 如果只有部分删除成功,则返回部分删除成功信息和删除的用户数量return Result.succeed("删除部分成功", count);}
}
  • mapper层接口
public interface UserMapper {int deleteUser(List<String> userList);}
  • xml
    <update id="deleteUser">update usersetstatus='0'where id in<foreach collection="list" item="item" open="(" close=")" separator=",">#{item}</foreach></update>

数据库

 

  • sql
/*Navicat Premium Data TransferSource Server         : databaseSource Server Type    : MySQLSource Server Version : 80029Source Host           : localhost:3306Source Schema         : score_management_dbTarget Server Type    : MySQLTarget Server Version : 80029File Encoding         : 65001Date: 18/02/2024 13:52:16
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (`userId` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '账号',`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '姓名',`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '密码',`phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '手机号',`grades` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '班级',`sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '性别',`age` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '年龄',`address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '地址',`status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '1' COMMENT '状态',`id` int NOT NULL AUTO_INCREMENT,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('zhangsan', '张三', '1234', '1778299200', '软件一班', '男', '341', '广西1', '1', 1);
INSERT INTO `user` VALUES ('zhangsi', '张四', '1234', '1778299200', '软件一班', '男399999', '3嗯嗯嗯', '广v', '1', 2);
INSERT INTO `user` VALUES ('liuliu', '刘六', '1234', '1778299200', '软件二班', '男', '34', '广西', '1', 3);
INSERT INTO `user` VALUES ('1', '陈万祥222', '1', '55566777888', '软件二班', NULL, NULL, NULL, '0', 10);
INSERT INTO `user` VALUES ('laoxiaming', '劳霞明', 'laoxiaming', '4646436', '软件二班', NULL, NULL, NULL, '1', 11);SET FOREIGN_KEY_CHECKS = 1;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/476073.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyCharm 主题和字体 (Scheme Editor Font)

PyCharm 主题和字体 [Scheme & Editor Font] References Scheme & Editor Font File -> Settings -> Editor -> Colors & Fonts -> Font Show only monospaced fonts&#xff1a; 只显示等宽字体。编程时使用等宽字体效果较好。 References [1] Yon…

Opencv实战(1)读取与图像操作

Opencv 文章目录 Opencv一、读取图片1.imshow2.namedWindow3.imshow4.效果图 二、像素操作(1).访问像素1. at()2.Mat_ (2).遍历像素1.指针遍历2.迭代器遍历 (3).threshold(4).通道分离1.split2.merge (5)Gamma矫正 三、深浅拷贝 一、读取图片 1.imshow Mat imread(const stri…

Spark---环境搭建---入门概念

目录 环境搭建 测试 Apache Spark是用于大规模数据处理的统一分析引擎&#xff1b; spark 仅仅替代了hadoop的mapraduce&#xff1b; spark比hadoop快一百倍&#xff1b; 环境搭建 1&#xff1a;解压&#xff1b; 2&#xff1a;配置spark环境变量&#xff1a; vim /etc/pro…

查看 PyCharm 代码文件目录位置

查看 PyCharm 代码文件目录位置 1. Show in Files2. Copy PathReferences 1. Show in Files right click -> Show in Files / Show in Explorer 即可打开目录 2. Copy Path right click -> Copy Path 即可复制目录或文件路径 References [1] Yongqiang Cheng, http…

入门级10寸加固行业平板—EM-I10J

亿道信息以其坚固耐用的智能终端设备而闻名&#xff0c;近日发布了一款理想入门级 10 英寸加固平板电脑—I10J。 EM-I10J​​ 这是一款 10 英寸的平板电脑&#xff0c;主要运行 Windows 10操作系统&#xff0c;带有硬化塑料外壳&#xff0c;具有 IP65 防水防尘功能和 MIL-STD 8…

DAP下载程序(在MDK上配置DAP)以及程序调试(Keil uVision5软件的使用)

目录 1. 在MDK上配置DAP 2. 了解不同开发板不同的下载算法 3. DAP调试程序 3.1 JTAG/SWD调试原理概述 3.2 基础执行控制按钮 3.3 查看程序段/函数执行时间 3.4 结束仿真报错解决方法 3.5 工具栏常用窗口按钮介绍 3.5.1 Call Stack窗口&#xff1a;查看函数调…

ChatGPT实战100例 - (17) 用ChatGPT实现音频长度测量和音量调整

文章目录 ChatGPT实战100例 - (17) 用ChatGPT实现音频长度测量和音量调整获取音频长度pydub获取音频长度获取时长精确到秒格式设定 mutagen获取音频长度 调整音量视频音量调整注意事项 ChatGPT实战100例 - (17) 用ChatGPT实现音频长度测量和音量调整 老王媳妇说上次那个pip挺好…

多模态基础--- word Embedding

1 word Embedding 原始的单词编码方式&#xff1a; one-hot&#xff0c;维度太大&#xff0c;不同单词之间相互独立&#xff0c;没有远近关系区分。 wordclass&#xff0c;将同一类单词编码在一起&#xff0c;此时丢失了类别和类别间的相关信息&#xff0c;比如class1和class3…

按键控制LED和光敏传感器控制蜂鸣器

按键控制LED 把两个按键分别接在PB11、PB1上面&#xff0c;两个LED接在PA1和PA2上面 main.c#include "stm32f10x.h" // Device header #include "Delay.h" #include "LED.h" #include "Key.h"uint8_t keynum; //全局…

Linux下HTTP隧道技术的应用场景与优势分析

亲爱的Linux侠们&#xff0c;今天我们来聊一聊Linux下HTTP隧道技术的应用场景与优势。在这个网络时代&#xff0c;HTTP隧道技术就如同一位神秘的“魔法师”&#xff0c;为我们解决了许多棘手的网络问题。 首先&#xff0c;让我们来看看HTTP隧道技术在哪些场景下能大展身手。 …

深度学习之pytorch实现线性回归

度学习之pytorch实现线性回归 pytorch用到的函数torch.nn.Linearn()函数torch.nn.MSELoss()函数torch.optim.SGD() 代码实现结果分析 pytorch用到的函数 torch.nn.Linearn()函数 torch.nn.Linear(in_features, # 输入的神经元个数out_features, # 输出神经元个数biasTrue # 是…

刷题Day2

&#x1f308;个人主页&#xff1a;小田爱学编程 &#x1f525; 系列专栏&#xff1a;刷题日记 &#x1f3c6;&#x1f3c6;关注博主&#xff0c;随时获取更多关于IT的优质内容&#xff01;&#x1f3c6;&#x1f3c6; &#x1f600;欢迎来到小田代码世界~ &#x1f601; 喜欢…