jsp+servlet+Tomcat+mysql实现用户注册、登录、查看、修改实例之——用户删除

学习javaWeb,首先要学习基础的jsp,servlet,弄通了机制然后就得心应手了。我们来实现一个简单的实例来学习。


我们的任务有:1.数据库及表创建

       2.实现用户注册

       3.实现用户登录

       4.实现用户列表显示

       5.实现用户删除

       6.实现用户信息查看

       7.实现用户信息修改


 上节实现的是用户列表显示,本节来实现用户删除

五、实现用户删除

用户删除操作在用户列表界面进行,可以分为:

      1.单条数据删除

      2.批量删除

1.单条用户删除

  单条用户删除是通过超链接方式,用get方式向servlet提交一个id,依照这个id对数据库中的记录进行删除操作。

  在生成每条数据的时候,添加上如下代码:

1 <td><a href="servlet/ServletUserDelete?userId=<%=user.getUserId() %>">删除</a></td>

  (注:页面详细代码,请参见:用户列表显示页面代码

  这样后台就会得到userId=<%=user.getUserId() %>,然后就可以调用数据库中的方法,ServletDeleteUser.javadoGet()如下:

 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.javadoPost()方法中即可得到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.数据库及表创建

       2.实现用户注册

       3.实现用户登录

       4.实现用户列表显示

       5.实现用户删除

       6.实现用户信息查看

       7.实现用户信息修改


原文地址:https://www.cnblogs.com/tzhz/p/3085807.html