开发工具与关键技术:MyEclipse 10、java
作者:梁添荣
撰写时间:2019-6-9
一条一条数据的删除书签效率低,有时项目需要批量删除
具体代码如下
1.实现接口的方法:把要删除的数据的id放进数组,再用addBatch();记录,完成后再执行
//批量删除
@Override
public String delete(String[] id) {
String str=“删除失败!”;
try {
con=DBUtil.connection();
ps=con.prepareStatement(delete);
//遍历所有的id,记录下来
for (int i = 0; i < id.length; i++) {
ps.setInt(1, Integer.valueOf(id[i]));
ps.addBatch();
}
//执行删除
int[] it=ps.executeBatch();
if(it.length>0){
str=“成功删除”+it.length+“条数据!”;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DBUtil.colse(con, ps, rs);
}
return str;
}
2.Jsp获取需要删除的数据id:获取勾选的复选框的id
把勾选的id存放进数组var array=[];
//批量删除
function dele(){
var check=$("#tbProject :checkbox:checked");
if(check.length==0){
alert(“请选择数据!”);
return false;
}else{
var array=[];
//遍历已勾选的id,存进数组
for(var int = 0; int < check.length; int++) {
array.push(check[int].value);
}
$("#formInser").attr(‘action’,‘servlet/Servlet?type=delete&array=’+array);
}
}
3.Servlet接受数组:实际上jsp传过来的数组,在servlet接受时是一串字符字符串,
这时我们可以根据split()方法分割字符串放进数组,得到所有的id,再把该数组传给接口方法接受
//批量删除
private void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String str=request.getParameter(“array”);
String[] str2=str.split(",");
String rs=driverSer.delete(str2);
request.setAttribute(“rs”, rs);
request.getRequestDispatcher("/servlet/Servlet?type=select").forward(request, response);
}