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

  • 相关阅读:
    JAVA基础:JAVA代码编写的30条建议
    Oracle学习之三 程序控制结构
    ExtJs 常用代码片段(7.30更新)
    ExtJs4 之数据模型
    .NET 大杂烩
    .NET 导出Excel
    Javascript实现IE直接打印
    C# Timer用法及实例
    AjaxPro实现无刷新多级联动实例
    VB6.0输入文本写进UTF8格式的文本文件
  • 原文地址:https://www.cnblogs.com/jasonHome/p/5535711.html
Copyright © 2011-2022 走看看