javaweb学习1_mvc案例(part5)_删除操作的设计与实现

删除操作:

  1.超链接:delete.do?id=<%=customer.getId()%>

  2.Servlet 的 delete 方法:获取 id ,调用 DAO 执行删除 ,重定向到 query.do(若目标页面不需要读取当前请求的 request 属性,就可以使用重定向),将显示删除后的 Customer 的 List

  3.JSP 上的 jQuery 提示:确定要删除 xx 的信息吗

1)思路:

  通过index 页面的<a>标签,将待删除的用户id 号传到 CustomerServlet2 中,在deleteCustomer 方法中 获取请求的 id 号,解析成 int型,通过成员变量 customerDAO.delete(id) 方法调用DAO<T>  的update(sql, id)方法,实现删除。 之后通过response.sendRedirect("query.do");将请求重定向得到query.do

2)关键代码。代码的结构在前面的几个笔记中都有写到,点击这里查看 

  I index页面的删除超链接  

 1 <%
 2         List<Customer> lists = (List<Customer>)request.getAttribute("list");
 3         if(lists != null && lists.size() > 0 ){
 4     %>
 5     <hr>
 6     <br><br>
 7     
 8     <table border="1" cellpadding="10" cellspacing="0">
 9             <tr>
10                 <th>ID</th>
11                 <th>CustomerName</th>
12                 <th>Address</th>
13                 <th>Phone</th>
14                 <th>Update\Delete</th>
15             </tr>
16             
17             <%
18                 for(Customer customer : lists){
19             %>
20             <tr>
21                 <td><%= customer.getId() %></td>
22                 <td><%= customer.getName() %></td>
23                 <td><%= customer.getAddress() %></td>
24                 <td><%= customer.getPhone() %></td>
25                 <td>
26                     <a href="">Update</a>
27                     <a href="deleteCustomer.do?id=<%= customer.getId() %>" class="delete">Delete</a>
28                 </td>
29             </tr>
30             
31             <%
32                 }
33             %>    
34             
35     </table>
36     <%     
37         }
38     %>

   II. 通过Jquery 方式,提供确定选择提示

 1 <!-- 加入 jquery 库 -->
 2 <script type="text/javascript" src="scripts/jquery-1.7.2.js"></script>
 3 <script type="text/javascript">
 4     $(function(){
 5         //1.为删除操作添加 click事件
 6         $(".delete").click(function(){
 7             //2.获取a标签的父节点td,再获取td的父标签tr,再找到第二个td标签,也就是name节点,最后获取那么name节点的文本值
 8             var content = $(this).parent().parent().find("td:eq(1)").text();
 9             //3.确认。'是'则处理删除操作,'否'则不处理
10             var flag = confirm("确定要删除" + content + "的用户么?");
11             return flag;
12 
13         });
14     });
15 
16 </script>

  

  III. CustomerServlet2 中servlet 中处理delete操作的 deleteCustomer 操作

 1     private void deleteCustomer(HttpServletRequest request,
 2                 HttpServletResponse response) throws ServletException, IOException {
 3             //1.获取请求删除的 id 为 String 类型
 4             String idStr = request.getParameter("id");
 5             //try{}catch{} 的作用:方式idStr 不能转化为 int 类型,若不能转则  id = 0,无法进行任何删除
 6             int id = 0;
 7             try {
 8                 //2.将idStr 解析为int 型
 9                 id = Integer.parseInt(idStr);
10                 //3.调用dao方法 删除数据
11                 customerDAO.delete(id);
12             } catch (Exception e) {
13                 e.printStackTrace();
14             }
15             response.sendRedirect("query.do");
16                 
17         }

  IV.CustomerDAOJdbcImpl.java

1 @Override
2     public void delete(Integer id) {
3         String sql = "DELETE FROM customers WHERE id = ?";
4         update(sql, id);
5     }

  V.DAO

 1 /**
 2      * @param sql
 3      *            : sql语句
 4      * @param ags
 5      *            : sql语句的占位符
 6      * @description:该方法封装了 INSERT ,DELETE,UPDATE 操作
 7      */
 8     public void update(String sql, Object... ags){
 9         
10         Connection connection = null;
11         try {
12             connection = JdbcUtils.getConnection();    
13             queryRunner.update(connection, sql, ags);
14             
15         } catch (Exception e) {
16             e.printStackTrace();
17         } finally{
18             JdbcUtils.releaseConnection(connection);
19         }
20     }

总结:

  1)jquery 的使用

  2)id的传递和获取

  3)理解代码层次

猜你喜欢

转载自blog.csdn.net/qq_37858042/article/details/81170803
今日推荐