用Hibernate怎么对数据进行分页

 我来答
就烦条0o
2017-04-16 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
public class Page {
public static final int DEFAULT_PAGE_SIZE = 10;
private int pageIndex; //当前第几页
private int pageSize; //一页显示几条
private int totalCount; //总共多少条
private int pageCount; //总共多少页
public Page(int pageIndex, int pageSize) {
if(pageIndex<1)
pageIndex = 1;
if(pageSize<1)
pageSize = 1;
this.pageIndex = pageIndex;
this.pageSize = pageSize;
}
public Page(int pageIndex) {
this(pageIndex, DEFAULT_PAGE_SIZE);
}
public int getPageIndex() { return pageIndex; }
public int getPageSize() { return pageSize; }
public int getPageCount() { return pageCount; }
public int getTotalCount() { return totalCount; }
public int getFirstResult() { return (pageIndex-1)*pageSize; }
public boolean getHasPrevious() { return pageIndex>1; }
public boolean getHasNext() { return pageIndex<pageCount; }
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
pageCount = totalCount / pageSize + (totalCount%pageSize==0 ? 0 : 1);
if(totalCount==0) {
if(pageIndex!=1)
throw new IndexOutOfBoundsException("Page index out of range.");
}
else {
if(pageIndex>pageCount)
throw new IndexOutOfBoundsException("Page index out of range.");
}
}
public boolean isEmpty() {
return totalCount==0;
}
}
page 类
protected List queryForList(final String select, final Object[] values, final Page page) {
HibernateCallback selectCallback = new HibernateCallback() {
public Object doInHibernate(Session session) {
Query query = session.createQuery(select);
if(values!=null) {
for(int i=0; i<values.length; i++)
query.setParameter(i, values[i]);
}
return query.setFirstResult(page.getFirstResult())
.setMaxResults(page.getPageSize())
.list();
}
};
return (List) hibernateTemplate.executeFind(selectCallback);
}
根据page查询
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式