zoukankan      html  css  js  c++  java
  • [原创]java WEB学习笔记24:MVC案例完整实践(part 5)---删除操作的设计与实现

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用

    内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系。

    本人互联网技术爱好者,互联网技术发烧友

    微博:伊直都在0221

    QQ:951226918

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    删除操作:

      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>UpdateDelete</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)理解代码层次

  • 相关阅读:
    HTTP断点续传 规格严格
    Java Shutdown 规格严格
    linux 命令源码 规格严格
    JTable调整列宽 规格严格
    linux 多CPU 规格严格
    Hello can not find git path 规格严格
    Kill 规格严格
    拜拜牛人 规格严格
    Swing 规格严格
    Debugging hangs in JVM (on AIX but methodology applicable to other platforms) 规格严格
  • 原文地址:https://www.cnblogs.com/jasonHome/p/5535711.html
Copyright © 2011-2022 走看看