码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-05-27 20:04:44      阅读:303      评论:0      收藏:0      [点我收藏+]

标签:

本博客为原创:综合 尚硅谷(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>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)理解代码层次

 

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

标签:

原文地址:http://www.cnblogs.com/jasonHome/p/5535711.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!