分页查询总结
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 + 1sql
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);内存