此为批量删除的代码:
所用工具和技术:eclipse+mysql+jdk1.8+ssm+jsp+ajax;
1. 前端页面:jsp
1.1 效果展示图
![](https://i-blog.csdnimg.cn/blog_migrate/1e96b30895661b9643239b26bef59609.jpeg)
1.2 html代码
在页面html的id,名称,日期等,如<th>id</th> <th>APP名称</th>上面添加下列代码:
<th><input type="checkbox" name="ifAll" title="全选/反选" id="ifAll" onClick="checkAll(this)"></th>
在页面html的循环数据的id上,如:<td>${ys.id}</td> <td>${ys.name}</td>上面添加如下代码:
<td><input type="checkbox" name="selectFlag"
class="checkbox1" value="${ys.id}" onClick="updateSelection(this)"></td>
添加点击事件--删除
<input name="btnDelete" class="button1" type="button" id="btnDelete"
value="删除" onClick="batchDeleYyb()">
1.3 js代码
//列表复选框
//定义向后台传输的所有id
var ids = '';
//复选框的更改,如:选择,取消选择
function updateSelection(selectFlag) {
//清空
ids = '';
//页面input的name属性
var selectIds = document.getElementsByName("selectFlag");
for (var i = 0; i < selectIds.length; i++) {
if (selectIds[i].checked) {
//取得该属性的值id
var id = $(selectIds[i]).val();
//拼接ids字符串
if (ids == '') {
ids = id;
} else {
ids += ',' + id;
}
}
}
}
//批量删除事件
function batchDeleYyb() {
//清空
ids = '';
//页面input的name属性
var selectIds = document.getElementsByName("selectFlag");
for (var i = 0; i < selectIds.length; i++) {
if (selectIds[i].checked) {
//取得该属性的值id
var id = $(selectIds[i]).val();
//拼接ids字符串
if (ids == '') {
ids = id;
} else {
ids += ',' + id;
}
}
}
if (ids.length == 0) {
alert("请选择要删除的app!");
return;
}
if (window.confirm("确认删除吗?")) {
$.ajax({//利用ajax发出请求
type: "post",//请求类型
url: "batchDeleYyb", //向Controller里的batchDeleYyb传输ids
data: {id: ids}, //键值对
success: function (data) {//删除成功后,后台会返回一个"ok";
if (data == "ok") {
alert("删除成功");//返回ok后弹出一个对话框。
location.href = "check.jsp";//相当于刷新界面
} else {
alert("删除失败");
}
}
});
}
}
//全选/反选操作
function checkAll(ifAll) {
//html部分的复选框的name属性
var select = document.getElementsByName("selectFlag");
for (var i = 0; i < select.length; i++) {
select[i].checked = ifAll.checked;
}
}
2.后台代码
2.1controller层
//注入service层
@Autowired
private YybService yybService;
/*
@RequestMapping("/batchDeleYyb") :前端ajax的url跳转到这里;
@RequestParam("id") String ids :前端ajax的data数据,键值对;
return string; :返回ok,页面显示删除成功;其他,删除失败;
*/
@RequestMapping("/batchDeleYyb")
public String batchDeleYyb(@RequestParam("id") String ids) {
String string=yybService.batchDeleYyb(ids);
return string;
}
2.2 service层(实现类)
@Override
public String batchDeleYyb (String ids){
Integer id = null;
String[] idStrings = ids.split(",");
//dao层接受的全部id数据,yybIdList
int[] yybIdList = new int[idStrings.length];
for (int i = 0; i < idStrings.length; i++) {
id = Integer.valueOf(idStrings[i]);
//得到一个id
yybIdList[i] = id;
//调用dao层方法,传入yybIdList参数
yybDao.batchDeleByYybIdList(yybIdList);
//查询传入的最后一个id,如果为空,说明删除成功,返回ok;如果不为空,说明删除失败,返回任意字符串;
Yyb yyb = yybDao.selectYyb(id);
if (yyb != null) {
return "";
}
return "ok";
}
}
2.3dao层(.xml)
//批量删除
<!--
id的属性batchDeleByYybIdList是dao层的方法名;
parameterType :参数类型,id是Integer
collection :类型.array是数组;list是集合;
-->
<delete id="batchDeleByYybIdList"
parameterType="java.lang.Integer">
delete from yyb where id in
<foreach collection="array" item="yybIdList" index="no"
open="(" separator="," close=")">
#{yybIdList}
</foreach>
</delete>