<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>VUE联系</title>
<!--自动识别最新稳定版本-->
<!--<script src="https://unpkg.com/vue/dist/vue.min.js"></script>-->
<!--<script src="https://unpkg.com/vue@2.6.10/dist/vue.min.js"></script>-->
<script src="../../js/jquery-3.3.1.min.js"></script>
<style type="text/css">
table{
border: black 1px solid;
}
table td{border:1px solid #00b7ee;background-color: #6ce26c }
th{background-color: #d5008f}
</style>
</head>
<body>
<table CELLPADDING="1" CELLSPACING="1"> <input type="button" onclick="batchDelete()" value="删除"/>
<input type="button" onclick="boxAll()" value="反选/全选"/> <tr>
<th>编号</th>
<th>电话</th>
<th>密码</th>
<th>邮箱</th>
<th>时间</th>
</tr>
<#if userList??>
<#list userList as item>
<tr>
<td>
<input type="checkbox" name="userNmae" value="${item.id}" />
</td>
<td>
<span>${item.phone}</span>
</td>
<td>
<span>${item.password}</span>
</td>
<td>
<span>${item.email}</span>
</td>
<td>
<span>${item.times}</span>
</td>
</tr>
</#list>
</#if> </table>
</body>
<script>
function batchDelete(){
//判断至少选择了一项
var checkedNum = $("input[type='checkbox']:checked").length;
if (checkedNum == 0) {
alert("至少选择一项删除!");
return;
}
if (confirm("确定删除选中的用户?")) {
var userList = new Array();
$("input[type='checkbox']:checked").each(function(){
userList.push($(this).val());
});
$.ajax({
type : "post",
url : "/user/batchDelete",
data : {"userList" : userList.toString()},
dataType:"JSON",
success : function(){
alert("删除成功!");
location.reload();
},
error : function(){
alert("刪除失败!")
}
});
}
} //全选 全不选
var flag=true;
function boxAll(){
var cd=$("input[type=checkbox]");
for (var i=0;i<cd.length;i++) {
cd[i].checked=flag;
}
flag=!flag;
} </script>
</html>

  public String batchDelete(HttpServletRequest request,HttpServletResponse response){
Result result=new Result();
String userIdListString= request.getParameter("userList");
String[] userIdList=userIdListString.split(","); try{
int num= this.userService.batchDelete(userIdList);
}catch (Exception e){
result.setMessage(ExceptionMes.Error_Message02);
result.setNo(ExceptionMes.Error_Code02);
log.error(JSON.toJSONString(result));
}
result.setMessage(ExceptionMes.Error_Message17);
result.setNo(ExceptionMes.Error_Code17);
return JSON.toJSONString(result);
}

 <delete id="batchDelete">
DELETE FROM `user` where `id` in
<foreach collection="array" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>

分别问前端,后台,和MAPPER.

这里注意前端的Array.toString  到后台接收时只是一个集合的字符串,如果需要传入数组或者集合,需要使用String.split(",")进行分割转换。
                                <!--collection="array"入残维数组-->
                               <!--collection="ids"入残为M安排-->
                               <!--collection="list"入残为集合-->

这三种情况对对号入座我就不多少了

JAVAWEB开发批量删除,SSM的几种情况的更多相关文章

  1. Pandas删除数据的几种情况

    开始之前,pandas中DataFrame删除对象可能存在几种情况 1.删除具体列 2.删除具体行 3.删除包含某些数值的行或者列 4.删除包含某些字符.文字的行或者列 本文就针对这四种情况探讨一下如 ...

  2. ArrayList循环遍历并删除元素的几种情况

    如下代码,想要循环删除列表中的元素b,该怎么处理? public class ListDemo { public static void main(String[] args) { ArrayList ...

  3. 谈谈使用Redis缓存时批量删除的几种实现

    前言 在使用缓存的时候,我们时不时会遇到这样一个需求,根据缓存键的规则去批量删除这些数据,比较常见的就是按前缀去删除. 举个简单的例子,Redis中现在有几百个商品的数据,这些数据的key值是有一定规 ...

  4. iOS开发:一个高仿美团的团购ipad客户端的设计和实现(功能:根据拼音进行检索并展示数据,离线缓存团购数据,浏览记录与收藏记录的批量删除等)

    大致花了一个月时间,利用各种空闲时间,将这个客户端实现了,在这里主要是想记录下,设计的大体思路以及实现过程中遇到的坑...... 这个项目的github地址:https://github.com/wz ...

  5. mybatis 根据id批量删除的两种方法

    原文:https://blog.csdn.net/qq_40010745/article/details/81032218 mybatis 根据id批量删除的两种方法   第一种,直接传递给mappe ...

  6. ssm批量删除

    ssm批量删除 批量删除:顾名思义就是一次性删除多个.删除是根据前台传给后台的id,那么所谓批量删除,就是将多个id传给后台,那么如何传过去呢,前后台的交互该如何实现? 1.jsp页面,先选中所有的要 ...

  7. ssm框架下怎么批量删除数据?

    ssm框架下批量删除怎么删除? 1.单击删除按钮选中选项后,跳转到js函数,由函数处理 2. 主要就是前端的操作 js 操作(如何全选?如何把选中的数据传到Controller中) 3.fun()函数 ...

  8. iOS开发——UI进阶篇(四)tableView的全局刷新,局部刷新,左滑操作,左滑出现更多按钮,进入编辑模式,批量删除,自定义批量删除

    首先创建项目,在storyboard如下布局控件,设置好约束 然后创建cell模型类XMGWineCell数据模型类XMGWine创建UITableView,设置数据源协议,实现数据源方法懒加载数据这 ...

  9. SSM实现批量删除功能

    批量删除功能的实现 其实实现这个功能还是挺简单的 因为我这是直接拼接的,所以用了DOM方法来获取id话不多说直接上代码首先是复选框全选和反选这里的话 获取最上面一个复选框的状态同步到拼接的复选框  $ ...

随机推荐

  1. web自动化测试(2):选择selenium优势?与PhantomJS/QTP/Monkey对比

    上篇 <web自动化测试(1):再谈UI发展史与UI.功能自动化测试>,自动化测试工具众多, PC端常用的功能自动化测试工具 Selenium:开源工具集,用于回归功能测试或者系统用例说明 ...

  2. go反射原理

    go反射原理 本文基于go1.13.15 1.go汇编 1.1 基本语法 go采用plan9的汇编器完成汇编,有下面几个重要的伪寄存器 FP: Frame pointer: 局部变量访问 PC: Pr ...

  3. Mysql 基础用法

    #创建表 CREATE TABLE table_name (column_name int) CREATE TABLE IF NOT EXISTS `runoob_tbl`( `runoob_id` ...

  4. @FeignClient常用属性

    @FeignClient(name = "gateway-test", value = "gateway-test", url = "localhos ...

  5. Rancher监控指标一文干到底

    一.工作负载指标 直接截取一个生产环境的rancher的web管理端-工作负载指标模块的图(这里没有汉化,直接英文)如下: 共5个大指标: CPU使用 内存使用 网络包 网络IO 磁盘IO 自学入口: ...

  6. 七夕特别篇|用Python绘画牛郎织女在鹊桥相见

    大家好,我是辰哥~ 今天就是七夕节,首先提前祝福有伴侣的小伙伴,七夕快乐,没有伴侣的小伙伴,今天就会找到伴侣,(给看到这句话的你好运加持,哈哈哈). 作为会Python的我们必须做点好玩且有意义的东西 ...

  7. MySQL-01-简介以及安装

    Mysql简介 什么是数据 数据:文字.图片.视频... 人类认知的数据表现方式 计算机:二进制.16进制的机器语言 基于数据的重要性和复杂性的不同,我们可能有不同的管理方式 哪些数据是适合存储到数据 ...

  8. 遗传算法Genetic Algorithm

    遗传算法Genetic Algorithm 好家伙,回回都是这个点,再这样下去人估计没了,换个bgm<夜泊秦淮>,要是经典咏流传能投票选诗词,投票选歌,俺一定选这个 开始瞎叨叨 遗传算法的 ...

  9. CVE-2021-21978 VMware View Planner 远程代码执行漏洞通告 | 附 POC

    漏洞简介 VMware 是一家云基础架构和移动商务解决方案厂商,View Planner 是他旗下推出的一款针对view桌面的测试工具.2021年03月02日,VMware 官方披露了 CVE-202 ...

  10. HTTP头参数详解及其中的危险

    一.重要的头参数 user_agent 发出请求的用户信息 X-Forwarded-For 表示 HTTP 请求端真实 IP(格式:X-Forwarded-For: client, proxy1, p ...