Hibernate分页查询代码

        

        /**
	 * 分页查询
	 */
	public List<Ptuser> fenye(int pagenum,int num_one) {
		//获得session
		Session session = hibernateTemplate.getSessionFactory().openSession();
		//开启事务
		session.beginTransaction();
		String str = "from ptuser";
		//创建查询对象
		Query query = session.createQuery(str);
		//设置查询开始值
		query.setFirstResult((pagenum-1)*num_one);
		//设置查询最大获取数量
		query.setMaxResults(num_one);
		List<Ptuser> ptusers = query.list();
		session.getTransaction().commit();
		//关闭session
		session.close();
		return ptusers;
	}

action 代码       

public class PtuserAction extends ActionSupport implements ModelDriven{

	/**
	 * 
	 */
	private static final long serialVersionUID = -8019056962412775442L;
	
	private PtuserManager ptuserManager;
	
	private PtuserInfo info = new PtuserInfo();
	private List<Ptuser> ptusers;
	private Ptuser ptuser;
	
	//总页数
	private int num_allblogpage;
	//总列数
	private int num_allblog;
	//页码
	private int pagenum;
	//一页的列数
	private int num_one;
	//分页标码的开始值
	private int page_begin = 1;
	//每页显示的页码个数
	private int num_feye;
	
	/**
	 * 分页查询
	 */
	public String fenye(){
		//获得普通用户的所有列
		List<Ptuser> list = ptuserManager.getPtusers();
		//得到总列数
		num_allblog = list.size();
		//用于测试,先指定每页显示条数
		num_one = 5;
		//得到总页数
		num_allblogpage = (num_allblog%num_one==0?(num_allblog/num_one):(num_allblog/num_one)+1);
		
		//如果页码大于总页数,页码就设为等于总页数
		if(pagenum>num_allblogpage){
			pagenum = num_allblogpage;
		}else if(pagenum<1){
			//如果页码数小于1,页码就设为等于1
			pagenum = 1;
		}
		//页码显示 每页显示5条
		if(pagenum%5==0){
			//如果页码数为5的倍数,则设页码开始数为当前页码数
			page_begin = pagenum;
		}else if(pagenum/5>0){
			    //如果页码数除5的值大于0,则设页码开始数等于于数乘5
				page_begin = (pagenum/5)*5;
		}else{
			page_begin = 1;
		}
		//设置分页码的范围值
		num_feye = page_begin+4;
		if(num_feye>num_allblogpage){
			num_feye = num_allblogpage;
		}
		//获取指定页的列,根据页码和显示条数,得到分页内容
		ptusers = ptuserManager.fenye(pagenum, num_one);  
		return "list";
	}
	


JSP代码

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>





<tr>
    <td colspan="100">
         <span> ${num_allblog}条数据  共${num_allblogpage}页  </span>
         <a href="ptuser!fenye.action?pagenum=${pagenum-1}">上一页</a>  
      	 <c:forEach  begin="${page_begin}" end="${num_feye}" var="pagenum">  
           [<a href="ptuser!fenye.action?pagenum=${pagenum}">${pagenum}</a>]   
      	 </c:forEach>  
         <a href="ptuser!fenye.action?pagenum=${pagenum+1}">  下一页  </a>   
      	 <a href="ptuser!fenye.action?pagenum=${num_allblogpage}"> 尾页</a> 
    </td>
</tr>