分页查询总结

  分页查询总结
  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
sql

 

 

oracle分页样本:oracle

总数:app

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

分页结果:排序

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);
内存

相关文章
相关标签/搜索