Web分页显示内容之分页查询的三种思路(二)

其二:一次查询,分批显示

就是说,我们可以执行一个数据库查询操作,得到结果集rs。然后,通过指针的移动来显示当前页面的记录。这样,就可以以 rs.absolute(当前页面号*每页记录数)定位到当前页的第一条记录,然后通过while循环显示n条记录(n为每页显示记录数)。在跳页时,只需修改currentPage,即可在重定位到下一页时把当前页面号改掉,重新定位记录指针,通过while遍历显示n条记录。与JS选择性显示不同,这里是选择性遍历。与JS分页不同的是,这里分页每次跳页修改的是遍历的指针,每次跳页都要进行一次全面查询。同样地,不适合大数据量查询。这里比JS分页优化的地方在于——实时性。每次跳页都会查询一次数据库,保证数据的实时性。

<%           int intPageSize = 10;             //一页显示的记录数 
             int intRowCount;                 //记录总数 
             int intPageCount;                 //总页数 
             String strPage;                    //从表单或URL传送的待显示页码
             int intPage;                     //待显示页码 ,由strPage转换成的整数

//---计算记录总数的第一种方法:查询出所有记录,移动结果集指针到最后一条,获取最后一条记录的行号
          //查询所有数据
         ResultSet sqlRst = sqlStmt.executeQuery("select * from user");
            //获取记录总数 
         sqlRst.last();                    //光标在最后一行
         intRowCount = sqlRst.getRow();    //获得当前行号,即总记录数
        //记算总页数 

//将记录指针定位到待显示页的第一条记录上 
           sqlRst.absolute((intPage - 1) * intPageSize + 1);
            //显示数据 
           int i=0;
           String user_id, user_name, user_sex, user_phone, user_age;
            while (i < intPageSize && !sqlRst.isAfterLast()) {
                        user_id = sqlRst.getString(1);
                        user_name = sqlRst.getString(2);
                        user_sex = sqlRst.getString(3);
                        user_phone = sqlRst.getString(4);
                        user_age = sqlRst.getString(5);
            %>
            <tr>
                <td><%=user_id%></td>
                <td><%=user_name%></td>
                <td><%=user_sex%></td>
                <td><%=user_phone%></td>
                <td><%=user_age%></td>
            </tr>
            <%
                        sqlRst.next();//移动记录指针指向下一条记录
                        i++;//统计当前页已显示多少条记录
                    }
            %>

转自博客:http://www.cnblogs.com/ygj0930/p/6134851.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值