数据库查询结果分页显示思路

数据库查询结果分页显示思路,通过计算Result Set指针位置实现分页显示

//设置页面显示数量
int pageSize;
//获取要显示页面 
int currentPage;
//需要定义的参数
Connection con;
Statement sta;
ResultSet rs;

//Statement 或者 PreparedStatement一定要设置为可滚动的,即:
sta=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);

rs=sta.executeQuery(/*String*/sql);/*sql为数据库查询语句*/
//获取结果记录总数 totalRecord
rs.last();//rs指针指向最后一行/
int totalRecord=rs.getRow();//最后一行的行号即为记录总数
//总页面数
int totalPage=(totalRecord%pageSize==0?totalRecord/pageSize:totalRecord/pageSize+1);

//计算指针位置
int rsLocation=(currentPage-1)*pageSize;
//移动指针
if (rsLocation == 0)
    rs.beforeFirst();//指针指向beforeFirst
else
    rs.absolute(ab);//指针指向计算得出的位置

//对结果进行操作
for(int i=0;i<pageSize&&rs.next();i++){
   do something with rs;
   }

显示查询结果不必翻一次页重新从头到尾查询一次数据库,在执行过一次查询后可以将rs指针保存在一个对象或者bean中,翻页的时候如果对象中存在rs就直接获取rs然后重新定位,如果不存在说明是第一次执行

首次查询结果耗时较长
首次查询

执行翻页或者跳转耗时非常少
查询后翻页

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值