今日收获

entity层和DBUtil层同增的操作,今天是删除操作(代码部分加上之前的):

dao层:

复制代码
package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import DBUtil.DBUtil;
import entity.Book;
import entity.Lendbook;




public class Dao {
    //根据书的姓名查找
    public Book getbyname(String bname) {
        String sql = "select * from Book where bname ='" + bname + "'";
        Connection conn = DBUtil.getConn();
        Statement state = null;
        ResultSet rs = null;
        Book b = null;
        
        try {
            state = conn.createStatement();
            rs = state.executeQuery(sql);
            while (rs.next()) {
                int id = rs.getInt("id");
                String bianhao = rs.getString("bianhao");
                String bname2 = rs.getString("bname");
                String wname = rs.getString("wname");
                String bhome=rs.getString("bhome");
                int num = rs.getInt("num");
                b = new Book(id,bianhao,bname2,wname,bhome,num);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        
        return b;
    }

    //添加新书信息
    public boolean addBook(Book stu) {
        Connection conn = DBUtil.getConn();
        PreparedStatement pstmt = null;
        boolean f = false;
        int a = 0;
        try {
            String sql = "insert into Book(bianhao,bname,wname,bhome,num) value(?,?,?,?,?)";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, stu.getBianhao());
            pstmt.setString(2, stu.getBname());
            pstmt.setString(3, stu.getWname());
            pstmt.setString(4, stu.getBhome());
            pstmt.setLong(5, stu.getNum());
            a = pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(pstmt, conn);
        }
        if (a > 0)
            f = true;

        return f;
    }
    //删除图书信息,根据书名删除
     public boolean deleteBook(String bname)
     {
         String sql="delete from Book where bname='" + bname + "'";
         Connection conn = DBUtil.getConn();
         Statement state = null;
         int a = 0;
         boolean f = false;
         try {
             state = conn.createStatement();
             a = state.executeUpdate(sql);
         } catch (SQLException e) {
             e.printStackTrace();
         } finally {
             DBUtil.close(state, conn);
         }
         
         if (a > 0) {
             f = true;
         }
         return f;
     }

   
    //浏览图书信息
    public List<Book> liulanbook() {
        String sql = "select * from Book";
        List<Book> list = new ArrayList<>();
        Connection conn = DBUtil.getConn();
        Statement state = null;
        ResultSet rs = null;

        try {
            state = conn.createStatement();
            rs = state.executeQuery(sql);
            Book bean = null;
            while (rs.next()) {
                int id = rs.getInt("id");
                String bianhao = rs.getString("bianhao");
                String bname = rs.getString("bname");
                String wname = rs.getString("wname");
                String bhome=rs.getString("bhome");
                int num = rs.getInt("num");
                bean = new Book(id,bianhao,bname,wname,bhome,num);
                list.add(bean);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }

        return list;
    }
    
}
复制代码

servlet层:

复制代码
package servlet;

import java.io.IOException;
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;

import dao.Dao;
import entity.Book;

@WebServlet("/Servlet")
public class Servlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    Dao dao = new Dao();

    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        String method = req.getParameter("method");
        if ("addBook".equals(method)) {
            addBook(req, resp);
        } else if ("liulanbook".equals(method)) {
            liulanbook(req, resp);
        } else if ("getbyname".equals(method)) {
            getbyname(req, resp);
        } else if ("deleteBook".equals(method)) {
            deleteBook(req, resp);
        }
    }

    private void deleteBook(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
        // TODO 自动生成的方法存根
        req.setCharacterEncoding("utf-8");
        String bname = req.getParameter("bname");
        if (dao.deleteBook(bname)) {
            req.setAttribute("message", "删除成功");
            req.getRequestDispatcher("Servlet?method=liulanbook2").forward(req, resp);
        } else {
            req.setAttribute("message", "删除失败");
            req.getRequestDispatcher("Servlet?method=liulanbook2").forward(req, resp);
        }
    }

    private void addBook(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        String bianhao = req.getParameter("bianhao");
        String bname = req.getParameter("bname");
        String wname = req.getParameter("wname");
        String bhome = req.getParameter("bhome");
        int num = Integer.parseInt(req.getParameter("num"));
        Book book = new Book(bianhao, bname, wname, bhome, num);
        if (dao.addBook(book)) {
            req.setAttribute("book", book);
            req.setAttribute("message", "添加成功");
            req.getRequestDispatcher("addBook.jsp").forward(req, resp);
        } else {
            req.setAttribute("message", "书籍信息重复,请重新输入");
            req.getRequestDispatcher("addBook.jsp").forward(req, resp);
        }
    }

   private void getbyname(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
       req.setCharacterEncoding("utf-8");
       String bname = req.getParameter("bname");
       Book b=new Book();
       b.setBname(bname);
       b= dao.getbyname(bname);
       if(b==null)
       {
           req.setAttribute("message", "未找到该书籍");
           req.getRequestDispatcher("xiugaiBook.jsp").forward(req, resp);
       }
       else 
       {
           req.setAttribute("b", b);
           req.getRequestDispatcher("xiugai2.jsp").forward(req,resp);
       }
   }  
    private void liulanbook(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
        req.setCharacterEncoding("utf-8");

        List<Book> tens = dao.liulanbook();
        req.setAttribute("tens", tens);
        req.getRequestDispatcher("list.jsp").forward(req, resp);
    }


}
复制代码

在list页面中,删除功能直接调用函数就可以实现

  <td><a href="Servlet?method=deleteBook&bname=${item.bname }" onClick="return confirm('确定删除吗?');">删除</a>
原文地址:https://www.cnblogs.com/feng747/p/14185838.html