数据库查询分页

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

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

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值