JDBC分页
jdbc分页
1. 什么是分页
在数据量较大的情况下,我们会数据分作多页显示,让用户浏览起来更加的方便,可以根据页码去翻阅每一页的数据
2. 如何实现分页的分析
说到分页,一般都会立刻想到先将数据存入集合,再将数据分作多页显示,这样的做法固然可以,可是一旦数据量较大的话就会造成内存的溢出,再者说,大部分用户的浏览习惯都是只看前三页,如果数据总共有100页,那就完全没必要将数据全部从数据库中查出来了,所以一个普遍的实现方式都是根据用户需要浏览的页码,从数据库中查询一页的数据供用户浏览
分页的目的就是为了更加合理地做页面显示,所以首先要解决的就是页面需要显示哪些数据
通常来讲,页面上会显示当前页的信息、当前第几页、总共多少页、页码、上一页、下一页等信息
我们可以使用一个 Page 对象来封装页面需要实现的数据
在service中计算出 Page 对象所需的数据
Service中需要的一些来自于数据库的数据就找 Dao 索取
3. 分页的具体实现
1)根据需求设计Page对象
2)dao的实现
两个方法
int getTotalRecord(); // 获得总记录数
List getPageData(int start, int len); // 获得分页数据
3)service 实现
Page getPage(int pageNum);// 计算分页数据
4)Servlet 获得页面提交的 pageNum
找service计算出分页数据 Page
转发给jsp 做分页显示
--mssqlserver的分页查询语句: select top 10 * from t where id not in (select top 20 id from t order by id ) order by id --或者 select top 10 * from t where id in (select top 20 id from t order by id) order by id desc --mysql的分页查询语句: select * from t order by id limit 20,10 --oracle的分页查询语句: select * from (select rownum r,* from t where r<=30) where r>20