學習javaWeb,首先要學習基礎的jsp,servlet,弄通了機制然后就得心應手了。我們來實現一個簡單的實例來學習。
我們的任務有:1.數據庫及表創建
上節實現的是用戶列表顯示,本節來實現用戶刪除
五、實現用戶刪除
用戶刪除操作在用戶列表界面進行,可以分為:
1.單條用戶刪除
單條用戶刪除是通過超鏈接方式,用get方式向servlet提交一個id,依照這個id對數據庫中的記錄進行刪除操作。
在生成每條數據的時候,添加上如下代碼:
1 <td><a href="servlet/ServletUserDelete?userId=<%=user.getUserId() %>">刪除</a></td>
(注:頁面詳細代碼,請參見:用戶列表顯示頁面代碼)
這樣后台就會得到userId=<%=user.getUserId() %>,然后就可以調用數據庫中的方法,ServletDeleteUser.java中doGet()如下:
1 public void doGet(HttpServletRequest request, HttpServletResponse response) 2 throws ServletException, IOException { 3 4 int userId = Integer.parseInt(request.getParameter("userId")); 5 UserDao userDao = new UserDao(); 6 userDao.deleteOneUser(userId); 7 ArrayList<UserVo> list = userDao.selectNotDeleteList(); 8 request.setAttribute("list", list); 9 request.getRequestDispatcher("/userlist.jsp").forward(request, response); 10 }
而在UserDao.java中的deleteOneUser(String userId)方法如下:
1 public void deleteOneUser(int userId) { 2 // 刪除單條記錄方法 3 Dbmanage dbmanage = new Dbmanage(); 4 Connection conn = null; 5 Statement sta = null; 6 7 try { 8 conn = dbmanage.initDB(); 9 sta = conn.createStatement(); 10 String sql = "UPDATE userTable SET user_display = 0 WHERE user_id =" 11 + userId; 12 sta.executeUpdate(sql); 13 } catch (SQLException e) { 14 15 e.printStackTrace(); 16 } finally { 17 // 執行完關閉數據庫 18 dbmanage.closeDB(sta, conn); 19 } 20 21 }
這樣,單條數據刪除就實現了,刪除完(實際是設置顯示狀態為0,檢索的時候不檢索,並非真的刪除數據)
之后重新查詢並導向了userlist.jsp頁面。
2.批量刪除
批量刪除則是通過form表單用post方式向后台提交了要刪除的數據id,然后servlet在得到數組之后,調用UserDao中方法進行批量刪除。
前台用戶選中要刪除數據前面的checkbox框,然后點擊批量刪除,多選,反選checkbox框操作不再一一贅述。
(注:頁面詳細代碼,請參見:用戶列表顯示頁面代碼)
在ServletDeleteUser.java中doPost()方法中即可得到checkbox框的數組,代碼如下:
1 public void doPost(HttpServletRequest request, HttpServletResponse response) 2 throws ServletException, IOException { 3 4 String UserId[] = request.getParameterValues("num"); 5 UserDao userDao = new UserDao(); 6 userDao.deleteUserList(UserId); 7 8 ArrayList<UserVo> list=userDao.selectNotDeleteList(); 9 request.setAttribute("list", list); 10 request.getRequestDispatcher("/userlist.jsp").forward(request, response); 11 }
而在UserDao.java中的deleteOneUserList(String [] userId)方法如下:
1 public void deleteUserList(String[] userId) { 2 // 批量刪除記錄方法 3 Dbmanage dbmanage = new Dbmanage(); 4 Connection conn = null; 5 Statement sta = null; 6 7 try { 8 conn = dbmanage.initDB(); 9 sta = conn.createStatement(); 10 int Id = 0; 11 for (int i = 0; i < userId.length; i++) { 12 13 // 循環遍歷集合中的元素,然后逐個刪除 14 Id = Integer.parseInt(userId[i]); 15 String sql = "UPDATE userTable SET user_display = 0 WHERE user_id =" 16 + Id; 17 sta.executeUpdate(sql); 18 } 19 20 } catch (SQLException e) { 21 22 e.printStackTrace(); 23 } finally { 24 // 執行完關閉數據庫 25 dbmanage.closeDB(sta, conn); 26 } 27 28 }
到這里,批量刪除就實現了,需要注意的是,如果不選中任何數據項,直接點擊‘批量刪除’,會報空指針異常,
因此需要做的還有未選中處理,這里不再說明。
鏈接導航 1.數據庫及表創建