浅谈Java分页技术

时间:2023-03-08 17:07:17

话不多言、我们要实现java分页技术,我们首先就需要定义四个变量,他们是:

int  pageSize;//每页显示多少条记录

int pageNow;//希望现实第几页

int pageCount;//一共有多少页

int rowCount;//一共有多少条记录

说明:

1.pageSize是指定的

2.pageNow是用户选择的

3.rowCount是从表中查询得到的

4.pageCount是计算得到的,该计算为:

if(rowCount%pageSize==0)

{

  pageCount=rowCount/pageSize;

}

else

{

  pageCount=rowCount/pageSize+1;

}

以上说明可能大家听的有点云里雾里,我来举个例子具体说明一下:

有用户表,共9条记录,即:rowCount;每页显示3条记录,即:pageSize=3;那么根据我们的算法:pageCount=3,刚好不多不少,如果每页显示四条记录,pageSize=4,那么pageCount=3,那么最后一页只会有1条记录,所以,不管怎样都是正确的。

针对前面提出的问题,我们很容易想到,使用select 字段名列表 from 表名 where id between ? and ?

我们以一个users表为例,显示第三页,该查询语句就是:select * from users userId between 7 and 9;

这个sql语句确实是比较快,但是它有一个问题,就是如果表的id被删除了,那么,某页可能就会少一条记录。在Sqlserver的查询分析器中实验一下,因此我们的最终解决方法是如下语句:

select top pageSize 字段名列表 from 表名 where id not in(select top pageSize*(pageNow-1) id from 表名);