javaweb查询功能分页显示

本文介绍了如何使用Java实现Web应用中的分页搜索功能。详细讲解了Dao层的数据库查询实现,包括带条件和不带条件的查询;Service层的分页逻辑处理,计算总页数并封装数据;以及前端HTML页面的展示和Servlet层的响应处理。通过实例代码展示了完整的流程。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

一、使用步骤

1.Dao层数据库实现

代码如下(示例):

@Override
    public List<Repairs> search(int pageIndex, int pageSize,String whether) {
        //封装数据的集合
        List<Repairs> list = new ArrayList<>();
        String sql= "select * from repairs limit ?,? ";
        if(whether!=""){  //带查询条件
            sql="select * from repairs where whether like ? limit ?,?";
        }
        Connection conn = BaseDao.getConnection();  //连接
        PreparedStatement st = null;  //命令
        ResultSet rs = null;  //结果集
        try {
            //命令对象的创建
            st = conn.prepareStatement(sql);
            if(whether!=""){
                st.setObject(1,"%"+whether+"%");
                st.setObject(2, (pageIndex - 1) * pageSize);
                st.setObject(3, pageSize);
            }
            else {
                st.setObject(1, (pageIndex - 1) * pageSize);
                st.setObject(2, pageSize);
            }
            //调用方法执行,结果集的获取
            rs = st.executeQuery();
            while(rs.next()){  //循环每一条数据进行封装
                Repairs repairs = new Repairs();
                repairs.setRid(rs.getInt(1));
                repairs.setDormitorys(rs.getString(2));
                repairs.setTel(rs.getString(3));
                repairs.setDorm(rs.getString(4));
                repairs.setWhether(rs.getString(5));
                repairs.setTime(rs.getString(6));
                repairs.setTupian(rs.getString(7));

//                repairs.setTupian((File) rs.getObject(7));
                //维修人员编号
                int rid = rs.getInt(8);

                Repairman repairman = new RepairmanDaoImpl().getRepairmanById(rid);
                repairs.setRepairname(repairman);



                list.add(repairs);
            }
        }catch (Exception ex){
            ex.printStackTrace();
        }finally {
            BaseDao.closeAll(conn,st,rs);
        }
        return list;//返回集合
    }






@Override
    public int getCount(String whether) {
        String sql= "select count(*) from repairs";
        if(whether != null){  //带查询条件
            sql+=" where whether like '%"+whether+"%'";
        }
        Connection conn = BaseDao.getConnection();  //连接
        PreparedStatement st = null;  //命令
        ResultSet rs = null;  //结果集
        try {
            st = conn.prepareStatement(sql);
            rs = st.executeQuery();
            if(rs.next()){
                return rs.getInt(1);
            }
        }catch (Exception ex){
            ex.printStackTrace();
        }finally {
            BaseDao.closeAll(conn,st,rs);
        }
        return 0;
    }

2.Service层实现类

代码如下(示例):

@Override
    public PageUtil<Repairs> search(int pageIndex, int pageSize, String whether)
    {
        PageUtil<Repairs> pageUtil = new PageUtil<>();
        int rowNum = dao.getCount(whether);
        //计算总页数
        int pageCount = (int)Math.ceil((double)rowNum/pageSize);
        List<Repairs> list =  dao.search(pageIndex,pageSize,whether);

        //把分页所需要的数据封装
        pageUtil.setPageIndex(pageIndex);
        pageUtil.setPageSize(pageSize);
        pageUtil.setCount(rowNum);
        pageUtil.setPageNum(pageCount);
        pageUtil.setList(list);

        return pageUtil;
    }

2.html前端

代码如下(示例):

$(function () {
              $.getJSON("repairs",function (data) {
                  loadData(data);
              });
          });
function search() {

              var search = $("#search").val();
              $.getJSON("repairs",{"pageIndex":1,"search":search},function (data) {
                  loadData(data);
              });
          }
          function  loadData(data) {

              //把表格中以前的tr删除
              $("#t tr:gt(0)").remove();
              for (var i = 0; i < data.list.length; i++) {
                  var str = "<tr><td>";
           str += data.list[i].rid + "</td><td>";
             str += data.list[i].dormitorys + "</td><td>";
             str += data.list[i].tel + "</td><td>";

             str += data.list[i].dorm + "</td><td>";
             str += data.list[i].whether + "</td><td>";

                  str += data.list[i].time + "</td><td>";
             str += "<img  src='/_war_exploded/userFile/" +data.list[i].tupian + "' width=50px height=50px  /></td><td>";
         
             str += data.list[i].repairname.rname + "</td><td>";
               
        
                  str +=  "<a href='repairs?id="+data.list[i].rid+"'>处理完成</a></td></tr>";
                  $("#t").append(str);
              }
              var page = "共" + data.count + "条,共" + data.pageNum + "页,当前第" + data.pageIndex + "页";
              page += "<a href='#' οnclick='mypage(1)'>首 页</a>";
              if (data.pageIndex == 1) {
                  page += "<a href='#' οnclick='mypage(1)'>上一页</a>";
              } else {
                  page += "<a href='#' οnclick='mypage(" + (data.pageIndex - 1) + ")'>上一页</a>";
              }
              var begin;
              var end;

              if (data.pageIndex<=5) {
                  begin = 1;
              }
              else {
                  begin = data.pageIndex - 5;
              }
              if (data.pageIndex+5<data.pageNum){
                  end = data.pageIndex+5
              }else{
                  end =data.pageNum;
              }

              for (var i = begin; i <= end; i++) {
                  page += "<a href='#' οnclick='mypage(" + i + ")'>" + i + "</a>";
              }

              if (data.pageIndex<data.pageNum) {
                  page += "<a href='#' οnclick='mypage("+(data.pageIndex+1)+")'>下一页</a>";
              }else{
                  page+="<a href='#' οnclick='mypage("+data.pageNum+")'>下一页</a>";
              }
              page+="<a href='#' οnclick='mypage("+data.pageNum+")'>末页</a>";
              $("#page").html(page);
          }
          function mypage(index) {
              var search = $("#search").val();
              $.getJSON("repairs",{"pageIndex":index,"search":search},function (data) {
                  loadData(data);
              });
              return false;
          }

2.Servlet层

代码如下(示例):

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        if(request.getParameter("pageIndex") != null){
            String whether="";
            if(request.getParameter("search")!=null) {
                whether = request.getParameter("search");
                System.out.println(whether);
            }
            int pageIndex = Integer.parseInt(request.getParameter("pageIndex"));
            writeData(response,pageIndex,whether);
        }
        else {
            writeData(response);
        }
}
    /**
     * 支持ajax,读取所有信息,并写出到客户端,
     * @param response
     * @throws IOException
     */
    private void writeData(HttpServletResponse response,Object ... args) throws IOException {
        int pageIndex = 1;  //默认第一页
        String whether= "";
        if(args.length>0){
            pageIndex=(int)args[0];
            whether = args[1].toString();
        }
        //调用底层方法取分页数据
        PageUtil<Repairs> pageUtil = new RepairsServiceImpl().search(pageIndex,5,whether);
        //转换成Json格式
        String jsonString = JSON.toJSONString(pageUtil);
        System.out.println(jsonString+"吐了");
        //输出对象
        PrintWriter out = response.getWriter();
        //写出到客户端
        out.write(jsonString);
    }

总结

提示:这里对文章进行总结:
例如:

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值