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


    目录

    前端代码: 

    后端代码:

    controller

     service层接口

    service接口的实现

    mapper层接口

    xml

    sql

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

     

    前端代码: 

    1. <el-input placeholder="请输入姓名" v-model="keyWord" style="width: 400px">
    2. <el-button slot="append" icon="el-icon-search" @click="selectAllUser()">el-button>
    3. el-input>
    4. <el-button type="primary" @click="batchDeleteUser()">批量删除el-button>
    5. <el-table :data="tableData" border style="width: 100%" @selection-change="handleSelectionChange">
    6. <el-table-column type="selection" width="55">el-table-column>
    7. <el-table-column prop="name" label="姓名" width="180">el-table-column>
    8. <el-table-column prop="phone" label="电话" width="180">el-table-column>
    9. <el-table-column prop="grades" label="班级" width="180">el-table-column>
    10. <el-table-column prop="operate" label="操作" align="center" fixed="right">
    11. <template slot-scope="scope">
    12. <el-button size="mini" type="text" @click="openDialog(scope.row)">编辑el-button>
    13. <el-button size="mini" type="text" @click="deleteOneUser(scope.row)">删除el-button>
    14. template>
    15. el-table-column>
    16. el-table>
    1. export default {
    2. data() {
    3. return {
    4. tableData: [],
    5. selectedIds: [], // 存储选中行的ID的数组
    6. }
    7. },
    8. methods: {
    9. //判断用户选择了什么
    10. handleSelectionChange(selection) {
    11. this.selectedIds = selection.map(item => item.id);
    12. },
    13. //删除用户(删除多个)
    14. batchDeleteUser() {
    15. this.deleteUser(this.selectedIds)
    16. },
    17. //删除用户(删除单个)
    18. deleteOneUser(row) {
    19. let selectIdArray = [];
    20. selectIdArray.push(row.id);
    21. this.deleteUser(selectIdArray)
    22. },
    23. //删除用户逻辑
    24. deleteUser(selectIdArray) {
    25. this.$confirm('确认删除?')
    26. .then(() => {
    27. //点击确定后的逻辑
    28. this.$axios({
    29. method: "post",
    30. url: "http://localhost:8080/api/user/deleteUser",
    31. data: selectIdArray
    32. }).then((res) => {
    33. if (res.data.code === '200') {
    34. this.$message({
    35. message: res.data.message,
    36. type: "success"
    37. });
    38. this.selectAllUser();
    39. } else {
    40. this.$message({
    41. message: res.data.message,
    42. type: "failed"
    43. });
    44. }
    45. })
    46. })
    47. .catch(() => {});
    48. }
    49. }
    50. }

    后端代码:

    • controller
    1. @RestController
    2. @RequestMapping("/user")
    3. public class UserController {
    4. @Autowired
    5. UserService userService;
    6. //删除用户
    7. @PostMapping("/deleteUser")
    8. public Result deleteUser(@RequestBody String[] userArray){
    9. return userService.deleteUser(Arrays.asList(userArray));
    10. }
    11. }
    1. public interface UserService {
    2. Result deleteUser(List UserList);
    3. }
    • service接口的实现
    1. public Result deleteUser(List userList) {
    2. // 判断userList是否为空
    3. if (CollectionUtils.isEmpty(userList)) {
    4. // 如果是空,则返回删除成功信息和删除数量为0
    5. return Result.succeed("删除成功", 0);
    6. }
    7. // 调用userMapper.deleteUser方法来删除指定的用户
    8. int count = userMapper.deleteUser(userList);
    9. // 判断删除是否成功
    10. if (count == userList.size()) {
    11. // 如果全部删除成功,则返回删除成功信息和删除的用户数量
    12. return Result.succeed("删除成功", count);
    13. } else {
    14. // 如果只有部分删除成功,则返回部分删除成功信息和删除的用户数量
    15. return Result.succeed("删除部分成功", count);
    16. }
    17. }
    1. public interface UserMapper {
    2. int deleteUser(List userList);
    3. }
    1. <update id="deleteUser">
    2. update user
    3. set
    4. status='0'
    5. where id in
    6. <foreach collection="list" item="item" open="(" close=")" separator=",">
    7. #{item}
    8. foreach>
    9. update>

    数据库

     

    • sql
    1. /*
    2. Navicat Premium Data Transfer
    3. Source Server : database
    4. Source Server Type : MySQL
    5. Source Server Version : 80029
    6. Source Host : localhost:3306
    7. Source Schema : score_management_db
    8. Target Server Type : MySQL
    9. Target Server Version : 80029
    10. File Encoding : 65001
    11. Date: 18/02/2024 13:52:16
    12. */
    13. SET NAMES utf8mb4;
    14. SET FOREIGN_KEY_CHECKS = 0;
    15. -- ----------------------------
    16. -- Table structure for user
    17. -- ----------------------------
    18. DROP TABLE IF EXISTS `user`;
    19. CREATE TABLE `user` (
    20. `userId` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '账号',
    21. `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '姓名',
    22. `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '密码',
    23. `phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '手机号',
    24. `grades` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '班级',
    25. `sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '性别',
    26. `age` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '年龄',
    27. `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '地址',
    28. `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '1' COMMENT '状态',
    29. `id` int NOT NULL AUTO_INCREMENT,
    30. PRIMARY KEY (`id`) USING BTREE
    31. ) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
    32. -- ----------------------------
    33. -- Records of user
    34. -- ----------------------------
    35. INSERT INTO `user` VALUES ('zhangsan', '张三', '1234', '1778299200', '软件一班', '男', '341', '广西1', '1', 1);
    36. INSERT INTO `user` VALUES ('zhangsi', '张四', '1234', '1778299200', '软件一班', '男399999', '3嗯嗯嗯', '广v', '1', 2);
    37. INSERT INTO `user` VALUES ('liuliu', '刘六', '1234', '1778299200', '软件二班', '男', '34', '广西', '1', 3);
    38. INSERT INTO `user` VALUES ('1', '陈万祥222', '1', '55566777888', '软件二班', NULL, NULL, NULL, '0', 10);
    39. INSERT INTO `user` VALUES ('laoxiaming', '劳霞明', 'laoxiaming', '4646436', '软件二班', NULL, NULL, NULL, '1', 11);
    40. SET FOREIGN_KEY_CHECKS = 1;

  • 相关阅读:
    Java 线程安全 与 锁
    jenkins部署
    R语言image函数画热图
    CTF—Go题目复现
    基于遗传算法的红绿灯间隔时间优化(代码完整,数据齐全)
    第5 部分 EIGRP
    欧科云链:成本与规模之辨——合规科技如何赋能香港Web3生态?
    【一起来学C++】————(8)模板
    土巴兔面试题
    2022年十大知名堡垒机品牌你真的知道吗?
  • 原文地址:https://blog.csdn.net/karlaofsky/article/details/136150099