您的位置:首页 > 其它

分页技术

2016-07-26 17:04 295 查看
分页技术的核心其实就是查找数据库中指定序号的数据:

下面的代码是之前用hibernate获取后台数据的分页:可以参考一下:这只是后台代码:

package com.ssh.entities;

import java.util.List;

public class PageBean {

private List<User> list;//从数据库分页查出来的集合
private int allRows;//总记录数
private int totalPage;//总页数
private int currentPage;//当前页
public List<User> getList() {
return list;
}
public void setList(List<User> list) {
this.list = list;
}
public int getAllRows() {
return allRows;
}
public void setAllRows(int allRows) {
this.allRows = allRows;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
/**
* @author zhangshitong
* get the total pages
* @param pageSize
* @param allRows
* @return
*/
public int getTotalPages(int pageSize,int allRows){
int totalPage=(allRows % pageSize==0)?(allRows / pageSize):(allRows /pageSize)+1;
return totalPage;
}

/**
* get the offset获得当前开始记录号
*/

public int getCurrentPageOffset(int pageSize, int currentPage){

int offset=pageSize*(currentPage-1);

return offset;

}
/**
* 得到当前页,如果为0就从第一页开始,否则为当前页
* @param page
* @return
*/
public int getCurrentPage(int page){
int currentPage=(page==0)? 1:page;
return  currentPage;
}

}


  

/**
* @author zhangshitong
* 分页功能实现的两个方法
* @return
*/
public int getAllRowCount(){
int allRows=0;
String hql="From User u";
Query query=getSession().createQuery(hql);
allRows=query.list().size();
return allRows;
}

public List<User> queryByPage(String hql, int offset, int pageSize){
List<User> list=null;
Query query=getSession().createQuery(hql).setFirstResult(offset).setMaxResults(pageSize);
list=query.list();
return list;
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: