22
基于图书管理系统的查
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>
我这里的查询功能放在了读者功能页,功能一样,点击查询图书信息,跳转到查询页:

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

查找成功:


浙公网安备 33010602011771号