首先看前端的样式图片实现效果
其中前台代码为:
<div class="search_item"> <span style="color: #ff4910">订单条件查询 </span> <span>按时间:</span> <div class="item"> <input type="radio" value="Asc" name="sortByTime" > 升序 </div> <div class="item"> <input type="radio" value="Desc" name="sortByTime" checked>降序 </div> </div> <div class="search_item"> <span>日期:</span> <div class="item"> <select name="year"> <option value="0">不限</option> <c:forEach var="i" begin="2010" step="1" end="2020"> <option value="${i}">${i}</option> </c:forEach> </select>年 </div> <div class="item"> <select name="month"> <option value="0" selected>不限</option> <c:forEach var="i" begin="1" step="1" end="12"> <option value="${i}">${i}</option> </c:forEach> </select>月 </div> <div class="item"> <select name="day"> <option value="0" selected>不限</option> <c:forEach var="i" begin="1" step="1" end="31"> <option value="${i}">${i}</option> </c:forEach> </select>日 </div>
书写后台GoodsOrderSearchBytime.java代码为:
package servlet.GoodsOrder; import javaBean.GoodsOrder; import javaBean.Page; import javaBean.User; import services.GoodsOrderServices; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/GoodsOrderSearchBytime") public class GoodsOrderSearchBytime extends HttpServlet{ GoodsOrderServices goodsOrderServices = new GoodsOrderServices(); public int getPageCode(HttpServletRequest request){ // 先获取从客户端传过来的参数 String pc = request.getParameter("pc"); // 进行判断 if(pc == null || pc.trim().isEmpty()){ // 返回第一页 return 1; } return Integer.parseInt(pc); } @Override public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { User user = (User)request.getSession().getAttribute("my"); if(user==null) request.getRequestDispatcher("/login.jsp").forward(request,response); String date = "%"; String sortByTime = request.getParameter("sortByTime"); String year = request.getParameter("year"); String month = request.getParameter("month"); String day = request.getParameter("day"); String keyWord = request.getParameter("keyWord"); if(!year.equals("0")){ date = year+"-"; System.out.println("年为:"+year); } else { date = date+"-"; } if(!month.equals("0")){ date = date+"%"+month+"-"; } else { date = date+"%-"; } if(!day.equals("0")){ date = date+"%"+day+"%"; } else { date = date+"%"; } int pageCode = getPageCode(request); int pageSize = 2; if(keyWord.equals("")){ Page<GoodsOrder> page = goodsOrderServices.findByPage ( pageCode, pageSize ,user.getUid(), sortByTime, date); //不将page建立session request.setAttribute("page",page); // 不将page.getGoodsBeanList()建立session request.setAttribute("goodsOrders",page.getGoodsOrderBeanList()); request.setAttribute("PageCode",page.getPageCode()); request.setAttribute("PageSize",page.getPageSize()); request.setAttribute("TotalPage",page.getTotalPage()); request.getRequestDispatcher("/JSP/user/userInfo.jsp").forward(request,response); } else { Page<GoodsOrder> page = goodsOrderServices.findByPage2 ( pageCode, pageSize ,user.getUid(), keyWord, sortByTime); System.out.println("uid为:"+user.getUid()); //不将page建立session request.setAttribute("page",page); // 不将page.getGoodsBeanList()建立session request.setAttribute("goodsOrders",page.getGoodsOrderBeanList()); request.setAttribute("PageCode",page.getPageCode()); request.setAttribute("PageSize",page.getPageSize()); request.setAttribute("TotalPage",page.getTotalPage()); request.getRequestDispatcher("/JSP/user/userInfo.jsp").forward(request,response); } } }
service层代码为:
// pageCode, pageSize ,user.getUid(),sortByTime,keyWord,date public Page<GoodsOrder> findByPage(int pageCode, int pageSize, String uid, String sortTime, String date ) { return goodsOrderDao.findByPage(pageCode, pageSize, uid, sortTime, date); } // keyword public Page<GoodsOrder> findByPage2(int pageCode, int pageSize, String uid, String keyword , String sortByTime) { return goodsOrderDao.findByPage2(pageCode, pageSize, uid , keyword , sortByTime); }
后台dao层代码为:
//有日期的查找 public Page<GoodsOrder> findByPage(int pageCode, int pageSize, String uid ,String sortTime, String date ) { // 创建PageBean对象 Page<GoodsOrder> page = new Page<GoodsOrder>(); page.setPageCode(pageCode); page.setPageSize(pageSize); // totalPage 计算不用处理 // totalCount 总记录数 // 通过uid就可以搜索他发布的二手商品,也就是说要 String SQL = " select count(*) from " + tableName + " where otime like '" + date +"' and uid = ? "; try { long count; ResultSet rs = JDBCHelper.query( SQL , uid ) ; if(rs.next()) { count = rs.getInt(1); page.setTotalCount((int) count); } // beanList 数据 // 通过uid就可以搜索他发布的二手商品,也就是说要 select * from usedGoods where uid = ? order by uid desc limit ? , ? String selSql = ""; if(sortTime.equals("Asc")){ selSql = " select * from " + tableName + " where otime like '" + date +"' and uid = ? order by oid Asc limit ? , ? "; } else { selSql = " select * from " + tableName + " where otime like '" + date +"' and uid = ? order by oid Desc limit ? , ? "; } ResultSet goodsOrderList = JDBCHelper.query(selSql,uid, (pageCode-1)*pageSize, pageSize); List<GoodsOrder> goodsOrderBeanList = search(goodsOrderList); // 把每页显示的数据设置成功了 page.setGoodsOrderBeanList(goodsOrderBeanList); // 所有的数据全部都封装成功了!! return page; } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } } //有关键字的查找 public Page<GoodsOrder> findByPage2(int pageCode, int pageSize, String uid , String keyword , String sortByTime) { // 创建PageBean对象 Page<GoodsOrder> page = new Page<GoodsOrder>(); page.setPageCode(pageCode); page.setPageSize(pageSize); // totalPage 计算不用处理 // totalCount 总记录数 // 通过uid就可以搜索他发布的二手商品,也就是说要 String SQL = " select count(*) from " + tableName + " where uid = ? and name like '%" +keyword +"%' "; try { long count; ResultSet rs = JDBCHelper.query( SQL , uid ) ; if(rs.next()) { count = rs.getInt(1); page.setTotalCount((int) count); } // beanList 数据 String selSql = ""; if(sortByTime.equals("Asc")){ selSql = " select * from " + tableName + " where uid = ? and name like '%" +keyword +"%' order by oid Asc limit ? , ? "; } else { selSql = " select * from " + tableName + " where uid = ? and name like '%" +keyword +"%' order by oid Desc limit ? , ? "; } ResultSet goodsOrderList = JDBCHelper.query(selSql,uid, (pageCode-1)*pageSize, pageSize); List<GoodsOrder> goodsOrderBeanList = search(goodsOrderList); // 把每页显示的数据设置成功了 page.setGoodsOrderBeanList(goodsOrderBeanList); // 所有的数据全部都封装成功了!! return page; } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } }