ssm批量删除
批量删除:顾名思义就是一次性删除多个。删除是根据前台传给后台的id,那么所谓批量删除,就是将多个id传给后台,那么如何传过去呢,前后台的交互该如何实现?
1.jsp页面,先选中所有的要删除的数据,将多个id通过数组的形式传递给后台
<body>
<button type="button" class="btn btn-danger" id="dele">批量删除</button>
<table class="table table-hover">
<tr>
<th><input type="checkbox" id="check1"></th>
<th>序号</th>
<th>姓名</th>
<th>生日</th>
<th>图片</th>
<th>下载</th>
<th>操作</th>
</tr>
<c:forEach varStatus="status" items="${demos }" var="demo">
<tr>
<td><input type="checkbox" value="${demo.id }" class="checkbox">
</td>
<td>${status.index+1 }</td>
<td>${demo.uname }</td>
<td>
<fmt:formatDate value="${demo.borth }" pattern="yyyy-MM-dd"/>
</td>
<td>
<c:if test="${empty demo.image }">
<img src="${demo.image }">
</c:if>
</td>
<td>下载</td>
<td></td>
</tr>
</c:forEach>
</table>
</body>
<script type="text/javascript"> $(function(){ $("#check1").click(function(){ $("td > input").prop("checked",this.checked); }); $("#dele").click(function(){ var idArr = new Array(); $.each($(".checkbox:checked"),function(){ //alert($(this).val()); idArr.push($(this).val()); }); $.ajax({ url:"${pageContext.request.contextPath}/deletes", type:"POST", traditional : "true", dataType:"json", data:{ "idArr":idArr }, success:function(){ } }); }); }); </script>
(2)controller
@RequestMapping(value="/deletes",method = RequestMethod.POST) @ResponseBody public String deletes(@RequestParam(value="idArr")String[] idArr) { System.out.println("666"); List<Integer> list=new ArrayList<Integer>(); int ids; for (String string : idArr) { ids=Integer.parseInt(string); list.add(ids); } demoService.deleteDemos(list); return "success"; }
(3)dao
public void deleteDemos(@Param("ids")List<Integer> ids);
(4)mapper
<delete id="deleteDemos"> delete from demo where id in <foreach collection="ids" item="item_id" separator="," open="(" close=")"> #{item_id} </foreach> </delete>