jsp+servlet+Tomcat+mysql实现用户注册、登录、查看、修改实例之——用户删除
学习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.数据库及表创建
posted on 2013-05-18 18:31 乐山乐水 若愚若怯 阅读(5851) 评论(1) 编辑 收藏 举报