数据库查询分页

来源:互联网 发布:淘宝客内部优惠券设置 编辑:程序博客网 时间:2024/05/14 10:53

刚刚接触数据库条目分页这个概念时让我有点迷茫。如何实现呢?

后来仔细考虑了下,查询分页不外乎是这样一个问题:

ResultSet rs = pstmt.executQuery("select * from t_user order by id");

此时已经获取了我要分页的数据集(rs)。假如当前每页显示5条,那么第一页我需要做的事情是:

ResultSet rs = pstmt.executQuery("select * from t_user order by id");

return rs.list(0,4); //这里是伪代码,意思是获取rs中前5个结果并返回。

那么第二页便是

ResultSet rs = pstmt.executQuery("select * from t_user order by id");

return rs.list(5,9); //这里是伪代码,意思是获取rs中5-9的结果并返回。


接下来我们要对上面的做法进行泛化

首先定义一个每页显示的数据条目

int pageSize = 5;

然后我们需要获取表中数据条目总数

int rowCount = pstmt.executQuery("select count(*) from t_user").get(0);


接下来我们需要计算一共需要分成几页来显示

int pageCount = (rowCount-1)/pageSize+1


然后便是查询

ResultSet rs = pstmt.executQuery("select * from t_user order by id");

return rs.list(x,y);

这里我们还是无法确定x,y的值,我们需要定义一个当前页面 int currentPage = 1;

那么x = (currentPage-1)*5

y = currentPage*5-1


至此我们已经实现了分页效果,那么如何在web端实现呢?

这里的currentPage 需要web端以参数的行数传递到后台

 

0 0
原创粉丝点击