分享

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

 hdzgx 2019-12-06

数据库查询结果分页显示思路,通过计算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然后重新定位,如果不存在说明是第一次执行

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

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多