JDBC案例(下):删除多个商品、多条件查找 分页查询
案例一、删除多个商品
一,需求分析
在product_list.jsp上可以选择多个商品,点击"删除选中"按钮,将把选中的商品从数据库中移除
二,思路分析
-
整理页面, 添加"复选框"和"删除选中"的按钮
-
给最上面的复选框设置点击事件,创建函数响应这个事件
-
在函数里面:完成全选和全不选
-
给按钮设置一个点击事件,创建函数响应这个事件
-
在这个函数里面,把选中的商品pid提交到ProductServlet
http://localhost:8080/JDBC/productServlet?method=deleteChecked&pid=1&pid=2&pid=3 1.拼接(太麻烦) 2.表单
-
在ProductServlet里面创建deleteChecked()方法
-
在deleteChecked()方法里面:
获得参数(pid) requet.getParameterValues("pid");
调用业务,删除选中的商品,使用事务管理
重定向到查询所有展示
三,代码实现
案例二、多条件查找
一,需求分析
在list.jsp添加一个表单,有两个文本框(商品名和关键字),一个提交"查询"按钮
二,思路分析
-
在list.jsp添加 商品名输入框,关键词输入框, 查找按钮
-
点击查找按钮, 把用户输入的 "商品名" , "关键词", method参数 提交到ProductServlet
-
在ProductServlet创建findByConditions()方法
-
在findByConditions()方法里面:
获得参数(商品名,关键词)
调用业务,根据条件查询商品, List<Product>
把list存在request域对象了里面,转发到product_list.jsp页面
-
创建业务
-
创建Dao
//拼接字符串 String sql = "select * from product where 1 = 1"; --> "select * from product if(pname!=null){ sql += " and pname like ?"; } if(key != null){ sql += " and pdesc like ?"; } =============================================================================== 如果没有条件:select *from product where 1 = 1 如果有一个条件: pname: select *from product where 1 = 1 and pname like ? key: select *from product where 1 = 1 and key like ? 如果有两个条件:select *from product where 1 = 1 and pname like ? and pdesc like ? String sql = "select *from product where pname like ? and pdesc like ? (两个条件满足)
三,代码实现
案例三、分页查询
一,需求分析
对商品进行分页查询
二,思路分析
-
在index页面添加一个超链接
<a href="${pageContext.request.contextPath }/productServlet?method=findByPage&curPage=1>分页查看所有的商品</a>
-
在ProductServlet里面,创建findByPage()方法
-
在findByPage()方法里面:
获得参数(curPage)
调用业务,获得数据 * 封装
把数据存在request域里面,转发product_page.jsp进行展示
三、代码实现
分析