分页查询总结

  分页查询总结
  oracle的分页是先进行查询并排序,然后在通过rownum进行范围截取,并且要排序
  内存分页要自己对查询结果进行排序,然后通过index进行范围截取
  重要的点是,首先要知道总的查询结果数量totalNum,根据每页大小pageSize,计算出总页数totalPage,本页结果数量curNum,
  根据当前页curPage和每页大小pageSize得到需要截取的范围startIndex和endIndex
  1.totalNum
  2.pageSize、curPage
  3.startIndex、endIndex
  4.curNum
  5.计算公式:
  a.startIndex=pageSize*(curPage-1)+1 
  b.endIndex=startIndex + pageSize - 1
  c.totalPage=(totalNum-1)/pageSize + 1

 

 

oracle分页样本:

总数:

ResultSet sets = stmt.executeQuery("select count(1) from ("+sql+")");
   if(sets.next()){
    totalNum = sets.getInt(1);
   }

分页结果:

StringBuffer buff = new StringBuffer(256);
   
   int startIndex = pageSize * (curPage - 1) + 1;
   int endIndex = startIndex + pageSize - 1;
   
   buff.append("select * from (");
   buff.append("select b.*,rownum row_num from (");
   buff.append("select * from (" + sql + ") a order by " + orderBy);
   buff.append(") b");
   buff.append(") c where row_num between " + startIndex + " and "
     + endIndex + " order by " + orderBy);

转载于:https://my.oschina.net/u/1458864/blog/262730

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值