<!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. xmind2020 zen 10.2.1win/mac/linux安装教程

    xmind是一款优秀的思维导图软件,本文教大家如何安装xmind zen 2020 10.2.1版本,解锁使用全部功能,包括去掉xmind zen水印.上传图片等功能,支持windows/mac/li ...

  2. APICloud的真机wifi连接问题

    APICloud的真机wifi连接问题 在APICloud的真机wifi连接时需要注意事项与解决问题. 1.首先将项目拉取到本地,用APICloud Studio 2打开(也可以用webStorm配置 ...

  3. synchronized 加锁 this 和 class 的区别!

    synchronized 是 Java 语言中处理并发问题的一种常用手段,它也被我们亲切的称之为"Java 内置锁",由此可见其地位之高.然而 synchronized 却有着多种 ...

  4. 卷积的等变性(equivariant) / 不变性(invariant)

    不变性:输入x发生变换,但是F之后的输出不变 \(F(x)=F [\)transform\((x)]\) 池化:近似不变性,当图像发生微小变化,最大池化的输出不变,还是一个池化范围内的max 等变性: ...

  5. Js实现随机某个li样式增加

    一.首先引入jquery  cdn   二.基础样式 三.目的 为了使随机某个li背后有个旋转的图片 四.核心代码 html代码: <div class="bg3"> ...

  6. 串、KMP模式匹配算法

    串是由0个或者多个字符组成的有限序列,又名叫字符串. 串的比较: 串的比较是通过组成串的字符之间的编码来进行的,而字符的编码指的是字符在对应字符集中的序号. 计算机中常用的ASCII编码,由8位二进制 ...

  7. 就这?分布式 ID 发号器实战

    分布式 ID 需要满足的条件: 全局唯一:这是最基本的要求,必须保证 ID 是全局唯一的. 高性能:低延时,不能因为一个小小的 ID 生成,影响整个业务响应速度. 高可用:无限接近于100%的可用性. ...

  8. sqli-labs lesson 26-27a

    less 26: 因为本关在windows上运行可能会出现字符转义(apacche下空格无法转义)错误,所以在docker上搭建好sqli-labs 在win2003上远程登录sqli-labs 先执 ...

  9. OSPF的Router-Id

    一.实验拓扑 二.实验编址 三.实验步骤: 1.设置PC的IP等信息 2.启动设备(全选) 3.根据实验编址配置路由器端口IP(先不设置lookback端口) R1: R2: R3: R4: 看一下r ...

  10. MySQL Mac 终端环境变量配置

    MySQL Mac 终端环境变量配置 这里安装的是mysql-8.0.26-macos11-x86_64,M1Mac,原本打算安装arm64版本,但一直安装不了,就装了x86版本 安装完成MySQL之 ...