java web 簡單版網上書城-圖書增刪查改

java web 簡單版網上書城-圖書增刪查改
繼續前一篇
https://blog.csdn.net/weixin_44889138/article/details/103908251
項目GitHub地址
https://github.com/LGH-cmd/booksystem

添加圖書

  1. 在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();
	}
  1. 添加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");
		}
	}
	
}

在這裏插入圖片描述

刪除圖書

  1. 在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();
		
	}
  1. 添加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");
		}
	}
	
}

在這裏插入圖片描述

編輯圖書

編輯圖書時需要回顯圖書信息

  1. 先查詢編輯的圖書的信息

在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;
		
	}
  1. 獲得信息後回顯

創建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");
		}
	}
	
}

在這裏插入圖片描述
完成,不更新了

發佈了20 篇原創文章 · 獲贊 6 · 訪問量 4910
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章