南开小巷

导航

分页技术

分页技术的核心其实就是查找数据库中指定序号的数据:

下面的代码是之前用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;
	}
	
	

  

posted on 2016-07-26 17:04  南开小巷  阅读(247)  评论(0编辑  收藏  举报