java實現多選批量刪除功能
本文為大傢分享瞭java實現多選批量刪除的具體代碼,幫助大傢更好的理解批量刪除功能的實現過程,供大傢參考,具體內容如下
本文用到的框架是:springmvc+mybatis
實現思路:多選復選框多個刪除,點擊全選全部選中,再次點擊全部取消,為瞭保證操作的安全,應該提示框進行提升,用戶再次點擊確認刪除進行刪除,把選中的多個復選框的值傳到後端進行循環刪除,最後刷新數據,公司中為瞭保證數據安全一般不會真正刪除而是把數據修改狀態進行隱藏,也就是修改,這邊以完全刪除為例
部分效果截圖(頁面簡陋)
點擊全選
再次點擊全選
刪除提示
確認刪除
代碼部分,含有簡單單個刪除
(1)controller
@RequestMapping("/batchDeletes") //批量刪除 public String delAnimal(String ids){ List<String> delList = new ArrayList<String>(); String[] strs = ids.split(","); for (String str : strs) { delList.add(str); } //開始循環批量刪除 testService.batchDeletes(delList); //重定向刷新數據 return "redirect:/showAnimal"; } @RequestMapping("/delByID") public String delByID(int id){ testService.delByID(id); //重定向刷新數據 return "redirect:/showAnimal"; }
代碼思路:
從前臺勾選的選擇框中傳過來的值用“,”分開,然後遍歷存放到delList集合裡面,直接刪delList集合裡面的所有字符串。
(2)service
void batchDeletes(List delList); void delByID(int id);
(3)serviceImpl
@Override public void batchDeletes(List delList) { testDao.batchDeletes(delList); } @Override public void delByID(int id) { testDao.delByID(id); }
(4)dao
void batchDeletes(List delList); void delByID(int id);
(5)mapper.xml
<!--批量刪除 --> <delete id="batchDeletes" parameterType="java.util.List"> delete from animal where id in <!--循環刪除 --> <foreach collection="list" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> </delete> <delete id="delByID" parameterType="int"> delete from animal where id=#{id} </delete>
如上的mybatis指代的意思如下:
foreach元素的屬性主要有 item,index,collection,open,separator,close。
item表示集合中每一個元素進行迭代時的別名. (直接找到對應的delList集合裡面的所有元素,item=”item”中的item(後一個)必須與#{item} 中的item一致)
index指 定一個名字,用於表示在迭代過程中,每次迭代到的位置.
open表示該語句以什麼開始,separator表示在每次進行迭代之間以什麼符號作為分隔 符.
close表示以什麼結束.
前端頁面代碼
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%-- Created by IntelliJ IDEA. User: wx_weiyihe Date: 2021/8/24 Time: 14:45 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> <html> <head> <title>Title</title> </head> <body> <input type="button" value="批量刪除" id="deleteButton"> <table border="1px" cellspacing="0px"> <tr> <th align="center"> <input type="checkbox" id="SelectAll" onclick="selectAll();" /> 全選</th> <th>ID</th> <th>名稱</th> <th>年齡</th> <th>操作</th> </tr> <c:forEach items="${list}" var="animal"> <tr> <td align="center"><input type="checkbox" name="checkbox" value="${animal.id}"></td> <td>${animal.id}</td> <th>${animal.name}</th> <th>${animal.age}</th> <th><input type="button" value="刪除" onclick="delByID('${animal.id}')"></th> </tr> </c:forEach> </table> </body> <script> //全選(全不選) function selectAll(){ //如果選擇全選按鈕 if ($("#SelectAll").is(":checked")) { $(":checkbox").prop("checked", true);//所有選擇框都選中 } else { //如果沒有選擇全選按鈕 $(":checkbox").prop("checked", false); //全部不選中 } } //批量刪除 $("#deleteButton").on("click", function() { //判斷至少寫瞭一項 var checkedNum = $("input[name='checkbox']:checked").length; if (checkedNum == 0) { alert("請至少選擇一項!"); return false; } //創建數組,存儲選擇的id var checkedList = new Array(); $("input[name='checkbox']:checked").each(function () { //把當前選中的復選框的id存入數組中 checkedList.push($(this).val()); }); //提示刪除 var flag=confirm("確認要刪除這"+checkedList.length+"條數據嗎?") if(flag){ //傳參,後端繼續進行刪除操作,傳到後端的是一個String數組 window.location.href="http://localhost:8080/batchDeletes?ids=" rel="external nofollow" +checkedList; } }) //單個刪除 function delByID(id){ window.location.href="http://localhost:8080/delByID?id=" rel="external nofollow" +id } </script> </html>
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Vue 實現穿梭框功能的詳細代碼
- vue項目input標簽checkbox,change和click綁定事件的區別說明
- jQuery實現全選反選操作案例
- jQuery實現全選按鈕
- Vue必學知識點之forEach()的使用