mysql分页问题

首先说明一下分页的几个变量:
    pageNow        表示当前是第几页(由用户决定);
    pageSize         表示每页显示几条记录(由程序决定);
    pageCount      表示共有多少页(计算得出)
    rowCount      表示共有多少记录(从数据库查询可得出)

pageCount的计算方法:
     pageCount = rowCount%pageSize==0 ? rowCount/pageSize : rowCount/pageSize + 1;
   pageCount = (rowCount-1)/pageSize+1;
③   if(rowCount%pageSize==0)        pageCount=rowCount/pageSize;
      else      pageCount=rowCount/pageSize+1;

rowCount的查询语句:

                   ps = conn.prepareStatement( "select count(*) from user" );
                             颜色部分为mysql查询总共有多少记录的语句
            rs = ps.executeQuery();
            rs.next();   一定要执行以下next()方法,不然取不到记录数量!
            rowCount=rs.getInt(1);  

下面是分页的核心部分:

String sql = select * from  user order by id limit "+(pageNow- 1)*pageSize+","+pageSize+ "" ;
该sql语句是用来执行分页操作的mysql语句,具体格式为:
    select * from 表名 order by 字段名 limit number1 , number2;
     (number1表示从第几个记录开始 不包括 number1本身; number2表示从 number1往下数几个

            ps = conn.prepareStatement(sql);
            rs=ps.executeQuery();
            out.println("<table border=1 width=500>"); 创建一个表格
            out.println("<tr><th>id</th><th>用户名</th><th>密码</th></tr>");
            while(rs.next())
            {
                out.println("<tr><td>"+rs.getString(1)+"</td><td>"+
                        rs.getString(2)+"</td><td>"+rs.getString(3)+"</td></tr>");
            }
            out.println("</table>");
            
            out.print("<a href='/UserManager1/ManageUsers?pageNow="+(pageNow==1?pageNow:(pageNow-1))+"'>上一页</a>");
该语句是显示 上一页 操作,里面运用了三目运算来计算是否当前页面是否为第一页,如果为第一页,则跳转仍停留在本页面;如果不为第一页,则执行 上一页 跳转  (页面内部跳转:把值pageNow通过?传递给  request.getParameter( "pageNow" )
          
  
            for(int i=1;i<=pageCount;i++)
            {
                out.print("<a href='/UserManager1/ManageUsers?pageNow="+i+"'><"+i+"></a>");
    该语句显示页码 
            }
            
            out.print("<a href='/UserManager1/ManageUsers?pageNow="+(pageNow==pageCount?pageNow:(pageNow+1))+"'>下一页</a>");
该语句是显示 下一页 操作,里面运用了三目运算来计算是否当前页面是否为最后一页,如果为 最后 一页,则跳转仍停留在本页面;如果不为 最后 一页,则执行 下一页 跳转  (页面内部跳转:把值pageNow通过?传递给  request.getParameter( "pageNow" )
            
            out.println("   "+"当前页"+pageNow+"/"+"总页数"+pageCount);
              
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值