本文整理自网络,侵删。
不管是DRP中的分页查询代码的实现还是面试题中看到的关于分页查询的考察,都给我一个提示:分页查询是重要的。当数据量大的时候是必须考虑的。之前一直没有花时间停下来好好总结这里。现在又将Oracle视频中关于分页查询的内容看了一遍,发现很容易就懂了。
1.分页算法
最开始我在网上查找资料的时候,看到很多分页内容,感觉很多很乱。其实不是这样。网上那些资料大同小异。问题出在了我自己这里。我没搞明白进行分页的前提是什么?我们都知道只要有分页都会涉及这些变量:每页又多少条记录(pageSize)、当前页(pageNow)、总记录数(totalRecords)、总页数(totalPages)、开始页(beginRow)、结束页(endRow)。网上的那些资料分页算法有用到pageSize的,有用到beginPage还有用到endPage.其实这些变量需要分类:我将他们分为三类:
A.需要从数据库中查询出来的:totalRecords. " select count(*) from tableName"
B.最基本的需要用户提供的:pageSize和pageNow.(个人觉得这是分页算法的前提)
C.从其他变量计算得来的:totalPages、beginRow和endRow.(这里需要计算出beginRow和endRow是由于分页查询中需要用到,totalPages是页面需要提供的信息)。具体的计算公式:
totalPages: if ((totalRecords% pageSize) == 0) { totalPages = totalRecords/ pageSize; } else { totalPages = totalRecords/ pageSize + 1; } beginRow: (pageNow-1) * PageSize +1 endRow: pageNow * PageSize
这样这些变量的值就都可以获得了。具体怎么使用请接着看2和3部分。
相关阅读 >>
解决plsql developer中数据库插入数据乱码问题(ssm项目开发)
更多相关阅读请进入《sql》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。