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> <input type="text" name="bname" /> 27 <br><br> 28 <a>作者名</a> <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>
我这里的查询功能放在了读者功能页,功能一样,点击查询图书信息,跳转到查询页:
可以根据书名或作者名进行模糊查找,例如输入作者名海明威:
查找成功: