jsp hibernate的分页代码第1/3页
            网络编程 发布日期:2025/11/1 浏览次数:1
         
        
            正在浏览:jsp hibernate的分页代码第1/3页
            可见使用Hibernate,在进行查询分页的操作上,是具有非常大的灵活性,Hibernate会首先尝试用特定数据库的分页sql,如果没用,再尝试Scrollable,如果不行,最后采用rset.next()移动的办法。 
(一)pager类 
* @(#)Pager.java 2005-5-3 
* 
* Copyright (c) 2005, Jeffrey Hsu 
*/ 
package com.jeffrey.messagelove; 
/** 
* Pager holds the page info. 
*/ 
public class Pager { 
private int totalRows = 0; // 记录总数 
private int totalPages = 0; // 总页数 
private int pageSize = 10; // 每页显示数据条数,默认为10条记录 
private int currentPage = 1; // 当前页数 
private boolean hasPrevious = false; // 是否有上一页 
private boolean hasNext = false; // 是否有下一页 
public Pager() { 
} 
/** 
* Initialize Pager 
* @param totalRows total record rows 
* @param pageSize total record is hold by every page 
*/ 
public void init(int totalRows, int pageSize) { 
this.totalRows = totalRows; 
this.pageSize = pageSize; 
totalPages = ((totalRows + pageSize) - 1) / pageSize; 
refresh(); // 刷新当前页面信息 
} 
/** 
* @return Returns the currentPage. 
*/ 
public int getCurrentPage() { 
return currentPage; 
} 
/** 
* @param currentPage current page 
*/ 
public void setCurrentPage(int currentPage) { 
this.currentPage = currentPage; 
refresh(); 
} 
/** 
* @return Returns the pageSize. 
*/ 
public int getPageSize() { 
return pageSize; 
} 
/** 
* @param pageSize The pageSize to set. 
*/ 
public void setPageSize(int pageSize) { 
this.pageSize = pageSize; 
refresh(); 
} 
/** 
* @return Returns the totalPages. 
*/ 
public int getTotalPages() { 
return totalPages; 
} 
/** 
* @param totalPages The totalPages to set. 
*/ 
public void setTotalPages(int totalPages) { 
this.totalPages = totalPages; 
refresh(); 
} 
/** 
* @return Returns the totalRows. 
*/ 
public int getTotalRows() { 
return totalRows; 
} 
/** 
* @param totalRows The totalRows to set. 
*/ 
public void setTotalRows(int totalRows) { 
this.totalRows = totalRows; 
refresh(); 
} 
// 跳到第一页 
public void first() { 
currentPage = 1; 
this.setHasPrevious(false); 
refresh(); 
} 
// 取得上一页(重新设定当前页面即可) 
public void previous() { 
currentPage--; 
refresh(); 
} 
// 取得下一页 
public void next() { 
System.out.println("next: totalPages: " + totalPages + 
" currentPage : " + currentPage); 
if (currentPage < totalPages) { 
currentPage++; 
} 
refresh(); 
} 
// 跳到最后一页 
public void last() { 
currentPage = totalPages; 
this.setHasNext(false); 
refresh(); 
} 
public boolean isHasNext() { 
return hasNext; 
} 
/** 
* @param hasNext The hasNext to set. 
*/ 
public void setHasNext(boolean hasNext) { 
this.hasNext = hasNext; 
} 
public boolean isHasPrevious() { 
return hasPrevious; 
} 
/** 
* @param hasPrevious The hasPrevious to set. 
*/ 
public void setHasPrevious(boolean hasPrevious) { 
this.hasPrevious = hasPrevious; 
} 
                            123下一页阅读全文