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下一页阅读全文