[Java Web] Thêm-Xóa-Sửa dữ liệu trong SQL Server sử dụng JDBC và JSP Servlet
Đăng lúc: 04:20 PM - 19/02/2024 bởi Charles Chung - 1541Trong trước chúng ta đã tìm hiểu về cách đọc dữ liệu sử dụng JDBC và JSP Servlet, bài này tôi sẽ tiếp tục hướng dẫn các bạn các thao tác thêm, xóa, sửa dữ liệu.
CRUD là gì?
CRUD là viết tắt của 4 từ tiếng Anh: Create, Read, Update, Delete. CRUD là 4 tính năng quan trọng nhất để làm việc với Database của một Website.
- CREATE – Tạo Mới Bài Viết, Tạo Mới Người Dùng
- READ – Đọc Nội Dung Bài Viết, Đọc Thông Tin Người Dùng, Đọc Thông Tin Đơn Hàng, Xem Sản Phẩm
- UPDATE – Chỉnh Sửa Bài Viết, Cập Nhật Giá Sản Phẩm, Người Dùng Đổi Mật Khẩu
- DELETE – Xóa Bài Viết, Xóa Bình Luận, Xóa Đơn Hàng Lỗi
Thực hiện CRUD với bảng Flowers trong SQL Server sử dụng JDBC, JSP Servlet
Chúng ta sẽ tiếp tục ví dụ của bài trước nhé, các bạn tải source code bài trước tại đây Tiếp theo chúng ta mở nó trong Eclipse rồi tạo thêm 2 trang add.jsp và edit.jsp theo cấu trúc dưới
Tiếp theo chúng ta sẽ bổ sung source code cho các trang và các lớp, servlet.
- Trang add.jsp: trang này chúng ta sẽ thiết kế Form HTML để nhập dữ liệu Flower
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <h3>Thêm mới hoa</h3> <form action="FlowerServlet?action=insert" method="post"> <table> <tr> <td>Mã hoa</td> <td><input type="text" name="flowerid" /></td> </tr> <tr> <td>Tên hoa</td> <td><input type="text" name="flowername" /></td> </tr> <tr> <td>Đơn vị tính</td> <td><input type="text" name="unit" /></td> </tr> <tr> <td>Giá</td> <td><input type="text" name="price" value="0" /></td> </tr> <tr> <td>Giá cũ</td> <td><input type="text" name="priceold" value="0" /></td> </tr> <tr> <td>Mô tả ngắn</td> <td><textarea name="brief"></textarea></td> </tr> <tr> <td>Mô tả đầy đủ</td> <td><textarea name="description"></textarea></td> </tr> <tr> <td>Ảnh</td> <td><input type="text" name="picture" /></td> </tr> <tr> <td>Tình trạng</td> <td><input type="checkbox" name="active" checked="checked" />Còn hàng</td> </tr> <tr> <td colspan="2"><button>Lưu</button></td> </tr> </table> </form> |
- Trang edit.jsp: trang này chúng ta sẽ thiết kế Form HTML và hiển thị thông tin của Flower cần sửa, giúp người dùng có thể sửa dễ dàng
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <h3>Sửa hoa</h3> <form action="FlowerServlet?action=update" method="post"> <table> <tr> <td>Mã hoa</td> <td><input type="text" name="flowerid" value="${flower.flowerId}" readonly="readonly" /></td> </tr> <tr> <td>Tên hoa</td> <td><input type="text" name="flowername" value="${flower.flowerName}" /></td> </tr> <tr> <td>Đơn vị tính</td> <td><input type="text" name="unit" value="${flower.unit}" /></td> </tr> <tr> <td>Giá</td> <td><input type="text" name="price" value="${flower.price}" /></td> </tr> <tr> <td>Giá cũ</td> <td><input type="text" name="priceold" value="${flower.priceOld}" /></td> </tr> <tr> <td>Mô tả ngắn</td> <td><textarea name="brief">${flower.brief} </textarea></td> </tr> <tr> <td>Mô tả đầy đủ</td> <td><textarea name="description">${flower.description} </textarea></td> </tr> <tr> <td>Ảnh</td> <td><input type="text" name="picture" value="${flower.picture}" /></td> </tr> <tr> <td>Tình trạng</td> <td><c:if test="${flower.isActive()==true}"> <input type="checkbox" name="active" checked="checked" /> </c:if> <c:if test="${flower.isActive()==false}"> <input type="checkbox" name="active" /> </c:if> Còn hàng</td> </tr> <tr> <td colspan="2"><button>Lưu</button></td> </tr> </table> </form> |
- Giao diện com.bkap.dao/FlowerDao.java: Khai báo thêm 3 phương thức theo code dưới đây
1 2 3 |
public boolean insert(Flower f); public boolean update(Flower f); public boolean delete(String flowerid); |
- Lớp com.bkap.dao/FlowerImpl.java: Bổ sung thêm code 3 phương thức trên như sau
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
@Override public boolean insert(Flower f) { try { PreparedStatement pst = con.prepareStatement("insert into flowers values(?,?,?,?,?,?,?,?,?,?)"); pst.setString(1, f.getFlowerId()); pst.setString(2, f.getFlowerName()); pst.setString(3, f.getUnit()); pst.setFloat(4, f.getPrice()); pst.setFloat(5, f.getPriceOld()); pst.setString(6,f.getBrief()); pst.setString(7, f.getDescription()); pst.setString(8, f.getPicture()); pst.setDate(9, f.getCreateDate()); pst.setBoolean(10, f.isActive()); return pst.executeUpdate()>0; } catch (SQLException e) { e.printStackTrace(); } return false; } @Override public boolean update(Flower f) { try { PreparedStatement pst = con.prepareStatement("update flowers set flowername=?,unit=?,price=?,priceold=?,brief=?,description=?,picture=?,createdate=?,active=? where flowerid=?"); pst.setString(10, f.getFlowerId()); pst.setString(1, f.getFlowerName()); pst.setString(2, f.getUnit()); pst.setFloat(3, f.getPrice()); pst.setFloat(4, f.getPriceOld()); pst.setString(5,f.getBrief()); pst.setString(6, f.getDescription()); pst.setString(7, f.getPicture()); pst.setDate(8, f.getCreateDate()); pst.setBoolean(9, f.isActive()); return pst.executeUpdate()>0; } catch (SQLException e) { e.printStackTrace(); } return false; } @Override public boolean delete(String flowerid) { try { PreparedStatement pst = con.prepareStatement("delete from flowers where flowerid=?"); pst.setString(1, flowerid); return pst.executeUpdate()>0; } catch (SQLException e) { e.printStackTrace(); } return false; } |
Lớp com.bkap.servlets/FlowerServlet.java: Bổ sung code xử lý logic cho servlet theo gợi ý sau
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF8"); FlowerDao flowerDao=new FlowerImpl(); String action=request.getParameter("action"); if(action==null) { request.setAttribute("flowers", flowerDao.getAll()); request.getRequestDispatcher("index.jsp?page=flowertables").forward(request, response); }else if(action.equals("flowers")) { request.setAttribute("flowers", flowerDao.getAll()); request.getRequestDispatcher("index.jsp?page=flowercells").forward(request, response); }else if(action.equals("detail") || action.equals("edit")) { String flowerid=request.getParameter("flowerid"); request.setAttribute("flower", flowerDao.getById(flowerid)); if(action.equals("detail")) request.getRequestDispatcher("index.jsp?page=flowerdetails").forward(request, response); else request.getRequestDispatcher("index.jsp?page=edit").forward(request, response); }else if(action.equals("delete")) { String flowerid=request.getParameter("flowerid"); if(flowerDao.delete(flowerid)) request.setAttribute("msg", "Xóa thành công"); else request.setAttribute("msg", "Xóa không thành công"); request.setAttribute("flowers", flowerDao.getAll()); request.getRequestDispatcher("index.jsp?page=flowertables").forward(request, response); }else if(action.equals("insert") || action.equals("update")) { String flowerid=request.getParameter("flowerid"); String flowername=request.getParameter("flowername"); String unit=request.getParameter("unit"); Float price=Float.parseFloat(request.getParameter("price")); Float priceold=Float.parseFloat(request.getParameter("priceold")); String brief=request.getParameter("brief"); String description=request.getParameter("description"); String picture=request.getParameter("picture"); boolean active=request.getParameter("active")!=null?true:false; Date createdate=Date.valueOf(LocalDate.now()); Flower f=new Flower(flowerid, flowername, unit, price, priceold, brief, description, picture, createdate, active); if(action.equals("insert")) { if(flowerDao.insert(f)) request.setAttribute("msg", "Thêm thành công"); else request.setAttribute("msg", "Thêm không thành công"); }else { if(flowerDao.update(f)) request.setAttribute("msg", "Sửa thành công"); else request.setAttribute("msg", "Sửa không thành công"); } request.setAttribute("flowers", flowerDao.getAll()); request.getRequestDispatcher("index.jsp?page=flowertables").forward(request, response); } } |
Cuối cùng các bạn chạy ứng dụng và xem kết quả nhé
- Màn hình thêm
- Màn hình sửa
- Màn hình xóa
Link tải source code
Video demo
thay lời cảm ơn!
Các bài cũ hơn
- [Java Web] Truy xuất dữ liệu trong SQL Server sử dụng JDBC và JSP Servlet (01:13 PM - 02/02/2024)
- [Java Web] Tìm hiểu ngôn ngữ JSTL trong JSP Servlet (02:12 PM - 01/02/2024)
- [Java Web] Tìm hiểu về Filter trong JSP Servlet (08:02 AM - 31/01/2024)
- [Java Web] State management sử dụng Session và Cookie trong JSP Servlet (08:12 PM - 30/01/2024)
- [Java Web] Expression Language (EL) và Scriptlets JSP (04:21 PM - 29/01/2024)