• mysql MVC jsp实现表分页


    mysql是轻量级数据库

    三层架构中实现简单的分页

    在数据库sql编程中需要编写sql语句

    SELECT * FROM sys.student limit 5,5;

    limit x,y

    x是开始节点,y是开始节点后的需要显示的长度。

    在jdbc编程中需要给出x和y

    一般是页数*页码,显示的长度。

    代码如下

    public ArrayList query(int page) {
            Connection con=Database.DatabaseConnection.getConnection();
            PreparedStatement pstmt;
            try {
                pstmt=con.prepareStatement("select * from sys.student limit ?,?");
                pstmt.setInt(1, (page-1)*5);
                pstmt.setInt(2, page*5);
                ResultSet rs=pstmt.executeQuery();
                ArrayList stus=new ArrayList();
                Stu stu;
                while(rs.next()){
                    stu=new Stu(rs.getString("name"),rs.getInt("age"));
                    stus.add(stu);
                }
                return stus;
            } catch (SQLException ex) {
                Logger.getLogger(operationStuImpl.class.getName()).log(Level.SEVERE, null, ex);
            }
            return null;
        }

    这样给出页码就可以得到一页的表中的元组。

    还有如何得到表中元组的数量来限制最后一页。

    数据库编程

    public int queryCount() {
            //得到所有的行
            Connection con=Database.DatabaseConnection.getConnection();
            PreparedStatement pstmt;
            try {
                pstmt=con.prepareStatement("select count(*) from sys.student");
                //pstmt.setString(1, name);
                ResultSet rs=pstmt.executeQuery();
                //找到学生信息
                //Stu stu=new Stu();
                while(rs.next()){
                int count=rs.getInt(1);
                return count;
                }
            } catch (SQLException ex) {
                Logger.getLogger(operationStuImpl.class.getName()).log(Level.SEVERE, null, ex);
            }
            return 0;
        }

    实现所有元组的获取

    servlet的实现:

    String page=request.getParameter("page");
            int page1=Integer.parseInt(page);
            int count=operationFactory.operationFactory.getOperationDao().queryCount();
            ArrayList stus;
            if(page1<=count/5){
                //request.setAttribute("page1", page1-1);
                request.setAttribute("page2", page1+1);
            }else{
            //request.setAttribute("page1", page1-1);
                request.setAttribute("page2", page1);
            }
            if(page1>1)
            {
            request.setAttribute("page1", page1-1);
            }else{
            request.setAttribute("page1", page1);
            }
            stus=operationFactory.operationFactory.getOperationDao().query(page1);
            
            
            request.setAttribute("stus", stus);
            request.setAttribute("count", (count/5+1));
            request.getRequestDispatcher("query.jsp").forward(request, response);

    前端jsp实现:


                首页
                上一页
                下一页
               
               
                 
               

                尾页
               

    page1和page2分别实现的是前一页和后一页。

    ${i}实现的是总页数,迭代的结果。这样可以得到那一页的结果集。

    实现页面:

  • 相关阅读:
    Mybatis-Plus入门实践
    kubernetes-v1.23.3 部署 MySQL-5.7.31
    第二十六章 源代码文件 REST API 参考(八)
    Spring源码--Bean的加载
    【Hack The Box】linux练习-- Tabby
    sentinel
    线程的状态与转换,组织与控制
    通用权限系统-Spring-Boot-Starter
    引流、变现、留存解决方案—“消费”+“分享”的聚合生态-分享购
    FPGA - 7系列 FPGA内部结构之Clocking -02- 时钟布线资源
  • 原文地址:https://blog.csdn.net/qq_32663053/article/details/133949624