JSP页面实现批量删除数据


危楼高百尺,手可摘星辰。
不敢高声语,恐惊天上人。 —李白《夜宿山寺》

 

JSP页面实现批量删除数据_第1张图片

首次:FindServlet.java-->bookList.jsp
删除:bookList.jsp-->DelServlet.java-->FindServlet..java

实现批量删除,首先获取要删除的行的id
String ID[]=request.getParameterValues("delid");
checkbox 的name 为 delid,值为id值,选择选择框,就会获取到id值。
SQL语句采用批处理命令:

String ID[]=request.getParameterValues("delid");        //获取要删除的图书编号
        if (ID.length>0){
            for(int i=0;ilength;i++){
                ps.setInt(1,Integer.parseInt(ID[i]));   // 对SQL语句中的第1个参数赋值
                ps.addBatch();              // 添加批处理命令
            }
        }
        ps.executeBatch();  // 执行批处理操作

之后转到查询业务的Findervlet,实现更新页面的效果
全选只是通过JavaScript 使其他所有的checkbox的 checked 属性为true即可

function CheckAll(elementsA, elementsB) {
        for (i = 0; i < elementsA.length; i++) {
            elementsA[i].checked = true;
        }
        if (elementsB.checked == false) {
            for (j = 0; j < elementsA.length; j++) {
                elementsA[j].checked = false;
            }
        }
    }

BookBean.java

//package com.mingrisoft;

public class BookBean {
    private int id;// 编号
    private String name;// 图书名称
    private double price;// 定价
    private int bookCount;// 数量
    private String author;// 作者
    .
    .

}

DelServlet.java

//package com.mingrisoft;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet实现类UpdateServlet
 */
@WebServlet("/DelServlet")  //配置Servlet
public class DelServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public DelServlet() {
        super();
    }

    /**
     * 处理POST请求
     */
protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
    try {
        Class.forName("com.mysql.jdbc.Driver"); // 加载数据库驱动,注册到驱动管理器
        String url = "jdbc:mysql://localhost:3306/db_book";// 数据库连接字符串
        String username = "root"; // 数据库用户名
        String password = "root"; // 数据库密码
        // 创建Connection连接
        Connection conn = DriverManager.getConnection(url, username,
                password);
        String sql = "DELETE FROM tb_book WHERE id=?";// 更新SQL语句
        PreparedStatement ps = conn.prepareStatement(sql);// 获取PreparedStatement
        String ID[]=request.getParameterValues("delid");        //获取要删除的图书编号
        if (ID.length>0){
            for(int i=0;i1,Integer.parseInt(ID[i]));   // 对SQL语句中的第1个参数赋值
                ps.addBatch();              // 添加批处理命令
            }
        }
        ps.executeBatch();  // 执行批处理操作
        ps.close(); // 关闭PreparedStatement
        conn.close(); // 关闭Connection
    } catch (Exception e) {
        e.printStackTrace();
    }
    response.sendRedirect("FindServlet"); // 重定向到FindServlet
}

}

FindServlet.java

//package com.mingrisoft;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet实现类FindServlet
 */
@WebServlet("/")        //配置Servlet为默认执行页
public class FindServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
     public FindServlet() {
        super();
    }

    /**
     * 执行POST请求的方法
     */
    protected void doPostt(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }

    /**
     * 执行GET请求的方法
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try {   
            Class.forName("com.mysql.jdbc.Driver");     // 加载数据库驱动,注册到驱动管理器
            String url = "jdbc:mysql://localhost:3306/db_book";// 数据库连接字符串
            String username = "root";                       // 数据库用户名   
            String password = "root";                       // 数据库密码    
            // 创建Connection连接
            Connection conn = DriverManager.getConnection(url,username,password);
            Statement stmt = conn.createStatement();        // 获取Statement
            String sql = "select * from tb_book";           // 添加图书信息的SQL语句 
            ResultSet rs = stmt.executeQuery(sql);          // 执行查询 
            List list = new ArrayList<>();        // 实例化List对象    
            while(rs.next()){                               // 光标向后移动,并判断是否有效
                BookBean book = new BookBean();                 // 实例化Book对象
                book.setId(rs.getInt("id"));                // 对id属性赋值
                book.setName(rs.getString("name"));     // 对name属性赋值
                book.setPrice(rs.getDouble("price"));       // 对price属性赋值
                book.setBookCount(rs.getInt("bookCount"));  // 对bookCount属性赋值
                book.setAuthor(rs.getString("author"));     // 对author属性赋值
                list.add(book);                             // 将图书对象添加到集合中
            }
            request.setAttribute("list", list);             // 将图书集合放置到request中
            rs.close();                                 // 关闭ResultSet
            stmt.close();                                   // 关闭Statement
            conn.close();                                   // 关闭Connection
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        // 请求转发到bookList.jsp
        request.getRequestDispatcher("bookList.jsp").forward(request, response);

    }

}

bookList.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ page import="com.mingrisoft.BookBean"%>

<html>
<head>
<meta charset="utf-8">
<title>显示图书列表title>
<style type="text/css">
tr {
    height: 30px;
}
th,td{
    background-color: #FFFFFF;
}
footer{
    padding:5px;
}
style>
<script type="text/javascript">
    function CheckAll(elementsA, elementsB) {
        for (i = 0; i < elementsA.length; i++) {
            elementsA[i].checked = true;
        }
        if (elementsB.checked == false) {
            for (j = 0; j < elementsA.length; j++) {
                elementsA[j].checked = false;
            }
        }
    }
    //判断用户是否选择了要删除的记录,如果是,则提示“是否删除”;否则提示“请选择要删除的记录”
    function checkdel(delid, formname) {
        var flag = false;
        for (i = 0; i < delid.length; i++) {
            if (delid[i].checked) {
                flag = true;
                break;
            }
        }
        if (!flag) {
            alert("请选择要删除的记录!");
            return false;
        } else {
            if (confirm("确定要删除吗?")) {
                formname.submit();
            }
        }
    }
script>
head>
<body>
    <div width="98%" align="center">
        <h2>所有图书信息h2>
    div>
    <form action="DelServlet" method="post" name="frm">
        <table width="98%" border="0" align="center" cellpadding="0"
            cellspacing="1" bgcolor="#666666">
            <tr>
                <th>IDth>
                <th>图书名称th>
                <th>价格th>
                <th>数量th>
                <th>作者th>
                <th>删除th>
            tr>
            <%
  // 获取图书信息集合
  List list = (List) request.getAttribute("list");
  // 判断集合是否有效
  if (list == null || list.size() < 1) {
      out.print("没有任何图书信息!");
  } else {
      // 遍历图书集合中的数据
      for (BookBean book : list) {
  %>
            <tr align="center">
                <td><%=book.getId()%>td>
                <td><%=book.getName()%>td>
                <td><%=book.getPrice()%>td>
                <td><%=book.getBookCount()%>td>
                <td><%=book.getAuthor()%>td>
                <td><input name="delid" type="checkbox"
                    class="noborder" value="<%=book.getId()%>">td>
            tr>
            <%
        }
    }
  %>
        table>
        <footer>
            <input name="checkbox" type="checkbox" class="noborder"
                onClick="CheckAll(frm.delid,frm.checkbox)"> [全选/反选] [
                <a style="color:red;cursor:pointer;" onClick="checkdel(frm.delid,frm)">删除a>]
            <div id="ch" style="display: none">
                <input name="delid" type="checkbox" value="0">
            div>
            
        footer>
    form>
body>
html>

你可能感兴趣的:(jsp,MySQL)