java web 簡單版網上書城-圖書增刪查改
繼續前一篇
https://blog.csdn.net/weixin_44889138/article/details/103908251
項目GitHub地址
https://github.com/LGH-cmd/booksystem
添加圖書
- 在BookDao中添加方法
// 添加一本書
public void addBook(Book book) throws Exception {
Connection conn = JdbcUtil.getConnection();
String sql = "insert into t_book(id,name,price,bnum,category)"
+ "values(?,?,?,?,?)";
PreparedStatement prps = conn.prepareStatement(sql);
prps.setString(1, book.getId());
prps.setString(2, book.getName());
prps.setDouble(3, book.getPrice());
prps.setInt(4, book.getBnum());
prps.setString(5, book.getCategory());
prps.execute();
conn.close();
}
- 添加AddBookServlet類,映射寫爲addBookServlet
@WebServlet("/addBookServlet")
public class AddBookServlet extends HttpServlet {
private BookDao bookDao = new BookDao();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String id = req.getParameter("id");
String name = req.getParameter("name");
String price = req.getParameter("price");
String bnum = req.getParameter("bnum");
String category = req.getParameter("category");
Book book = new Book();
book.setId(id);
book.setName(name);
book.setPrice(Double.parseDouble(price));
book.setBnum(Integer.parseInt(bnum));
book.setCategory(category);
try {
bookDao.addBook(book);
resp.sendRedirect(req.getContextPath() + "/bookServlet");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().write("系統異常,請聯繫管理員 10086");
}
}
}
刪除圖書
- 在BookDao中添加方法
//刪除圖書
public void deleteBookById(String id) throws Exception {
Connection conn = JdbcUtil.getConnection();
String sql = "delete from t_book where id=?";
PreparedStatement prps = conn.prepareStatement(sql );
prps.setString(1, id);
prps.execute();
conn.close();
}
- 添加DeleteBookServlet類
@WebServlet("/deleteBookServlet")
public class DeleteBookServlet extends HttpServlet {
private BookDao bookDao = new BookDao();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
String id = req.getParameter("id");
try {
bookDao.deleteBookById(id);
resp.sendRedirect(req.getContextPath() + "/bookServlet");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().write("系統異常,請聯繫管理員 10086");
}
}
}
編輯圖書
編輯圖書時需要回顯圖書信息
- 先查詢編輯的圖書的信息
在BookDao中添加方法
// 找點擊的書
public Book findBookById(String id) throws Exception {
Connection conn = JdbcUtil.getConnection();
String sql = "select * from t_book where id=?";
PreparedStatement prps = conn.prepareStatement(sql);
prps.setString(1, id);
ResultSet set = prps.executeQuery();
Book book = new Book();
if(set.next()) {
//獲取每一個字段的值
String name = set.getString("name");
double price = set.getDouble("price");
int bnum = set.getInt("bnum");
String category = set.getString("category");
book.setId(id);
book.setName(name);
book.setPrice(price);
book.setBnum(bnum);
book.setCategory(category);
}
conn.close();
return book;
}
- 獲得信息後回顯
創建FindBookServlet
@WebServlet("/findBookServlet")
public class FindBookServlet extends HttpServlet {
private BookDao bookDao = new BookDao();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String id = req.getParameter("id");
try {
Book book = bookDao.findBookById(id);
req.setAttribute("BOOK", book);
req.getRequestDispatcher("/editBook.jsp").forward(req, resp);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().write("系統異常,請聯繫管理員 10086");
}
}
}
利用EL表達式回顯
id進行input隱藏,更新時需要使用
3. 更新信息後保存
在BookDao中添加方法
// 更新 一本書
public void updateBook(Book book) throws Exception {
Connection conn = JdbcUtil.getConnection();
String sql = "update t_book set name=?,price=?,bnum=?,category=? where id=?";
PreparedStatement prps = conn.prepareStatement(sql);
prps.setString(1, book.getName());
prps.setDouble(2, book.getPrice());
prps.setInt(3, book.getBnum());
prps.setString(4, book.getCategory());
prps.setString(5, book.getId());
prps.executeUpdate();
conn.close();
}
創建UpdateBookServlet
@WebServlet("/updateBookServlet")
public class UpdateBookServlet extends HttpServlet {
private BookDao bookDao = new BookDao();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String id = req.getParameter("id");
String name = req.getParameter("name");
String price = req.getParameter("price");
String bnum = req.getParameter("bnum");
String category = req.getParameter("category");
Book book = new Book();
book.setId(id);
book.setName(name);
book.setPrice(Double.parseDouble(price));
book.setBnum(Integer.parseInt(bnum));
book.setCategory(category);
try {
bookDao.updateBook(book);
resp.sendRedirect(req.getContextPath() + "/bookServlet");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().write("系統異常,請聯繫管理員 10086");
}
}
}
完成,不更新了