基于图书管理系统的查

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

dao层:

  1 package dao;
  2 
  3 import java.sql.Connection;
  4 import java.sql.PreparedStatement;
  5 import java.sql.ResultSet;
  6 import java.sql.SQLException;
  7 import java.sql.Statement;
  8 import java.util.ArrayList;
  9 import java.util.List;
 10 
 11 import DBUtil.DBUtil;
 12 import entity.Book;
 13 
 14 public class Dao {
 15     //根据书的姓名查找
 16     public Book getbyname(String bname) {
 17         String sql = "select * from Book where bname ='" + bname + "'";
 18         Connection conn = DBUtil.getConn();
 19         Statement state = null;
 20         ResultSet rs = null;
 21         Book b = null;
 22         
 23         try {
 24             state = conn.createStatement();
 25             rs = state.executeQuery(sql);
 26             while (rs.next()) {
 27                 int id = rs.getInt("id");
 28                 String bianhao = rs.getString("bianhao");
 29                 String bname2 = rs.getString("bname");
 30                 String wname = rs.getString("wname");
 31                 String bhome=rs.getString("bhome");
 32                 int num = rs.getInt("num");
 33                 b = new Book(id,bianhao,bname2,wname,bhome,num);
 34             }
 35         } catch (Exception e) {
 36             e.printStackTrace();
 37         } finally {
 38             DBUtil.close(rs, state, conn);
 39         }
 40         
 41         return b;
 42     }
 43 
 44     //添加新书信息
 45     public boolean addBook(Book stu) {
 46         Connection conn = DBUtil.getConn();
 47         PreparedStatement pstmt = null;
 48         boolean f = false;
 49         int a = 0;
 50         try {
 51             String sql = "insert into Book(bianhao,bname,wname,bhome,num) value(?,?,?,?,?)";
 52             pstmt = conn.prepareStatement(sql);
 53             pstmt.setString(1, stu.getBianhao());
 54             pstmt.setString(2, stu.getBname());
 55             pstmt.setString(3, stu.getWname());
 56             pstmt.setString(4, stu.getBhome());
 57             pstmt.setLong(5, stu.getNum());
 58             a = pstmt.executeUpdate();
 59         } catch (SQLException e) {
 60             e.printStackTrace();
 61         } finally {
 62             DBUtil.close(pstmt, conn);
 63         }
 64         if (a > 0)
 65             f = true;
 66 
 67         return f;
 68     }
 69     //删除图书信息,根据书名删除
 70      public boolean deleteBook(String bname)
 71      {
 72          String sql="delete from Book where bname='" + bname + "'";
 73          Connection conn = DBUtil.getConn();
 74          Statement state = null;
 75          int a = 0;
 76          boolean f = false;
 77          try {
 78              state = conn.createStatement();
 79              a = state.executeUpdate(sql);
 80          } catch (SQLException e) {
 81              e.printStackTrace();
 82          } finally {
 83              DBUtil.close(state, conn);
 84          }
 85          
 86          if (a > 0) {
 87              f = true;
 88          }
 89          return f;
 90      }
 91 
 92     //更新图书信息,获取的是书的姓名
 93     public boolean updateBook(Book stu,String old_bname) {
 94         String sql = "update Book set bianhao='" + stu.getBianhao() + "', bname='" + stu.getBname() + "', wname='"
 95                 + stu.getWname() + "',bhome='" + stu.getBhome() + "',num='" + stu.getNum() + "'where bname='"+old_bname+"'";
 96         Connection conn = DBUtil.getConn();
 97         Statement state = null;
 98         boolean f = false;
 99         int a = 0;
100         try {
101             state = conn.createStatement();
102             System.out.println("修改成功");
103             a = state.executeUpdate(sql);
104             System.out.println(a);
105         } catch (SQLException e) {
106             e.printStackTrace();
107         } finally {
108             DBUtil.close(state, conn);
109         }
110 
111         if (a > 0) {
112             f = true;
113         }
114 
115         System.out.println(f);
116         return f;
117     }
118     //浏览图书信息
119     public List<Book> liulanbook() {
120         String sql = "select * from Book";
121         List<Book> list = new ArrayList<>();
122         Connection conn = DBUtil.getConn();
123         Statement state = null;
124         ResultSet rs = null;
125 
126         try {
127             state = conn.createStatement();
128             rs = state.executeQuery(sql);
129             Book bean = null;
130             while (rs.next()) {
131                 int id = rs.getInt("id");
132                 String bianhao = rs.getString("bianhao");
133                 String bname = rs.getString("bname");
134                 String wname = rs.getString("wname");
135                 String bhome=rs.getString("bhome");
136                 int num = rs.getInt("num");
137                 bean = new Book(id,bianhao,bname,wname,bhome,num);
138                 list.add(bean);
139             }
140         } catch (SQLException e) {
141             e.printStackTrace();
142         } finally {
143             DBUtil.close(rs, state, conn);
144         }
145 
146         return list;
147     }
148     //模糊查询图书
149     public List<Book> searchBook(String bname,String wname)
150     {
151         String sql = "select * from Book where ";
152         if (bname != "") {
153             sql += "bname like '%" +bname+ "%'";
154         }
155         if (wname != "") {
156             sql += "wname like '%" +wname+ "%'";
157         }
158         
159         List<Book> list = new ArrayList<>();
160         Connection conn = DBUtil.getConn();
161         Statement state = null;
162         ResultSet rs = null;
163         Book bean = null;
164         try {
165             state = conn.createStatement();
166             rs = state.executeQuery(sql);
167             while (rs.next()) {
168                 String bianhao = rs.getString("bianhao");
169                 String bname2 = rs.getString("bname");
170                 String wname2 = rs.getString("wname");
171                 String bhome=rs.getString("bhome");
172                 int num = rs.getInt("num");
173                 bean = new Book(bianhao,bname2,wname2,bhome,num);
174                
175                 list.add(bean);
176             }
177         } catch (SQLException e) {
178             e.printStackTrace();
179         } finally {
180             DBUtil.close(rs, state, conn);
181         }
182         
183         return list;
184     }
185 
186 }

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 ("searchBook".equals(method)) {
            searchBook(req, resp);
        } else if ("getbyname".equals(method)) {
            getbyname(req, resp);
        } else if ("deleteBook".equals(method)) {
            deleteBook(req, resp);
        }else if("updateBook".equals(method)) {
            updateBook(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 searchBook(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
        req.setCharacterEncoding("utf-8");
        String bname = req.getParameter("bname");
        String wname = req.getParameter("wname");

        List<Book> tens = dao.searchBook(bname, wname);
        if (tens == null) {
            req.setAttribute("message", "没有该书");
            req.getRequestDispatcher("searchbook.jsp").forward(req, resp);
        } else {
            req.setAttribute("tens", tens);
            req.getRequestDispatcher("list.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);
    }

     private void updateBook(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
            req.setCharacterEncoding("utf-8");
            String old_bname = req.getParameter("old_bname");
            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 b = new Book(bianhao, bname, wname, bhome, num);
            if (dao.updateBook(b,old_bname)) {
                req.setAttribute("message", "修改成功");
                req.getRequestDispatcher("Servlet?method=liulanbook2").forward(req, resp);
            }else {
                req.setAttribute("message", "修改失败");
                req.getRequestDispatcher("Servlet?method=liulanbook2").forward(req, resp);
            }
        }
}

searchBook.jsp:

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>Insert title here</title>
 8 
 9 </head>
10 <body>
11 <%
12           Object message = request.getAttribute("message");
13           if(message!=null && !"".equals(message)){
14       
15      %>
16           <script type="text/javascript">
17                alert("<%=request.getAttribute("message")%>");
18           </script>
19      <%} %>
20 <h>查找书籍</h>
21     <div class="content">
22         <div class="main">
23         <a href="reader.jsp">返回主页面</a>
24         <br><br>
25         <form name="form" action="Servlet?method=searchBook" method="post" ">
26             <a>书名</a>&nbsp;&nbsp;<input type="text" name="bname" />
27             <br><br>
28             <a>作者名</a>&nbsp;&nbsp;<input type="text" name="wname" />
29             <br><br>
30             
31             <input type="submit" value="查找" /></td>
32         </form>
33         </div>
34     </div>
35 </body>
36 </html>

我这里的查询功能放在了读者功能页,功能一样,点击查询图书信息,跳转到查询页:

 可以根据书名或作者名进行模糊查找,例如输入作者名海明威:

 查找成功:

原文地址:https://www.cnblogs.com/znjy/p/14171044.html