java分页查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java分页查询相关的知识,希望对你有一定的参考价值。

//记算总页数
intPageCount = (intRowCount+intPageSize-1) / intPageSize;

这个算法怎么搞出来的?说一下,谢谢

intPageCount = (intRowCount+intPageSize-1) / intPageSize;等价于
intPageCount=(intRowCount-1/intPageSiez)+1;
如果introwCount(总记录)=8,intPageSize(每页记录)=8则共为1页,如果rowCount=14,inPageSize=8则为2页,就是说总页数至少是要比8的倍数多1才会多翻一页.你想想如果一页显示八个记录,而总数刚好最后页有8个记录,你会翻页吗,不会的吧!!就这个道理
其实可以用为intPageCount=intRowCount%intPageSize==0?(intRowCount)/intPageSize:(intRowCount/intPageSize+1);
假设rowCount(总记录数)=8 intPageSize(每页记录数)=8,那么总页数就是因为8%8==0则8/8=1
就是一页
假设rowCount=14 intPageSize=8则总页数就是因为14%8!=0则14/8+1=2
就是两页这样分析楼主不知道能否明白
参考技术A package com.yonder.shill.common;

/**
* 用来处理分页的类
* @author shill
*/
public class Pagination

private int pageIndex; //当前页的序号
private int pageSize; //每页的大小
private long rowCount; //总记录条数
private int pageCount; //总页数
private int fromIndex; //记录的开始序号
private int toIndex; //记录的结束序号

public Pagination(int pageIndex, int pageSize, long rowCount)

this.pageIndex = pageIndex;
this.pageSize = pageSize;
this.rowCount = rowCount;
if (rowCount%pageSize>0)

this.pageCount = (int)(rowCount/pageSize + 1);
else

this.pageCount = (int)(rowCount/pageSize);

this.fromIndex = (pageIndex-1)*pageSize;
if ((this.fromIndex+pageSize)>rowCount)

this.toIndex = (int)rowCount;
else

this.toIndex = this.fromIndex + pageSize;



public int getFromIndex()

return fromIndex;


public void setFromIndex(int fromIndex)

this.fromIndex = fromIndex;


public int getPageCount()

return pageCount;


public void setPageCount(int pageCount)

this.pageCount = pageCount;


public int getPageIndex()

return pageIndex;


public void setPageIndex(int pageIndex)

this.pageIndex = pageIndex;


public int getPageSize()

return pageSize;


public void setPageSize(int pageSize)

this.pageSize = pageSize;


public long getRowCount()

return rowCount;


public void setRowCount(long rowCount)

this.rowCount = rowCount;


public int getToIndex()

return toIndex;


public void setToIndex(int toIndex)

this.toIndex = toIndex;


这是我自己写了用的.看对你有没有作用...
参考技术B 这有个例子,来看看吧
http://hi.baidu.com/javajavajava/blog/item/cc8497af85bbb7c87dd92a79.html

参考资料:http://hi.baidu.com/javajavajava/blog/item/cc8497af85bbb7c87dd92a79.html

参考技术C 不知道啊
?????????????????????????、、、、、、、没用过

java分页

用top top 吧
我只举例了:以sqlServer吧
select top A * from student where id not in (select top A*(B-1) id from student);
A是每页的数目,B是页码
这句sql语句的子查询意思就是:查询前A*(B-1)条数据的id
而整个sql语句查询的是id不再这个子查询范围内的前A条数据

也就是说,第一页 每页10条数据,
子查询查出 10*(1-1) = 0条数据,也就是第一页应该是整个表中的最前面10条数据
而第二页就是 10*(2-1) = 10 ,也就是这一次查询出前10条数据时过滤掉第一页的数据的

其实如果用了hibernate 会发现,有现成的方法
Query对象
query.setFirstResult(A);//设置当前页码,从0开始
query.setMaxResults(B);//设置每页显示数目
参考技术A 你的问题很大啊......的问题很大啊......问题很大啊.....题很大啊....很大啊.....大啊.....啊......啊.....

以上是关于java分页查询的主要内容,如果未能解决你的问题,请参考以下文章

java分页查询

java分页

Java如何根据条件查询相应的数据并分页

JAVA-分页查询

Java分页查询--分页显示

java mybatis 分页模糊查询页面怎么写