当前位置: 首页 > news >正文

mysql MVC jsp实现表分页

mysql是轻量级数据库

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

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

SELECT * FROM sys.student limit 5,5;

limit x,y

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

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

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

代码如下

public ArrayList<Stu> 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<Stu> stus=new ArrayList<Stu>();
            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<Stu> 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实现:

<div class="text-center margin-big-top">
            <a href="QueryServlet?page=1">首页</a>
            <a href="QueryServlet?page=${page1}">上一页</a>
            <a href="QueryServlet?page=${page2}">下一页</a>
            <!--<a href="QueryServlet?page=1">${count-1}1</a>
            <a href="QueryServlet?page=2">${count}2</a>-->
            <c:forEach var="i" begin="1" end="${count}" step="1">
              <a href="QueryServlet?page=${i}"><c:out value="${i}"/></a>
            </c:forEach>
            <a href="QueryServlet?page=${count}">尾页</a>
            </div>

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

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

实现页面:

http://www.lryc.cn/news/199711.html

相关文章:

  • 【微信小程序】数字化会议OA系统之首页搭建(附源码)
  • Leetcode——二维数组及滚动数组练习
  • 钢水包升降翻转液压系统比例阀放大器
  • 通达OA-通用版-V12,流程及表单自定义好用的类
  • 如何在vue中实现图片懒加载
  • Mac 远程桌面软件
  • EPLAN_005#宏边框、页宏、窗口宏/符号宏
  • 如何正确地使用ChatGPT(角色扮演+提示工程)
  • MySQL服务安装与登录
  • 论文阅读之《Kindling the Darkness: A Practical Low-light Image Enhancer》
  • 性能测试基础知识及性能指标
  • ArcGIS笔记10_如何创建渔网?
  • Jmeter安装(快速入门)
  • 一个react前端项目中的配置文件作用解析
  • MAC 配置 Maven
  • vue3.0 + element plus upload图片 上传
  • Leetcode 18:四数之和
  • word误删除的文件怎么恢复?恢复办法分享
  • 提高Qt开发软件运算性能提升
  • WordPress SMTP邮件发送插件 Easy WP SMTP
  • 大咖云集,智慧碰撞|第 18 届 CLK 大会完整议程揭晓(内附报名通道)
  • springweb+vue前后端分离开发,集成部署
  • 美芯片禁令再次扩大,波及英伟达、AMD以及intel等科技公司 | 百能云芯
  • Docker入门到精通教程
  • Java 对象是什么样子的?
  • 自动驾驶的法律和伦理问题
  • Uniapp 增加百度统计代码
  • pyflink 环境测试以及测试案例
  • EtherNet/IP转Modbus TCP协议网关的接口
  • 视频集中存储/视频监控管理平台EasyCVR如何免密登录系统?详细操作如下