[原创]java WEB学习笔记24:MVC案例完整实践(part 5)---删除操作的设计与实现
Posted jason_zhangz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[原创]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>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)---删除操作的设计与实现的主要内容,如果未能解决你的问题,请参考以下文章
[原创]java WEB学习笔记26:MVC案例完整实践(part 7)---修改的设计和实现
[原创]java WEB学习笔记25:MVC案例完整实践(part 6)---新增操作的设计与实现
[原创]java WEB学习笔记18:java EE 中的MVC 设计模式
[原创]java WEB学习笔记19:初识MVC 设计模式:查询,删除 练习(理解思想)