Hibiernate+struts2分頁(一)
阿新 • • 發佈:2018-08-06
session 初始 記錄 list 修改 println 返回 code amp 如果使用Hibernate的話,她裏面的Query有這麽兩個方法,可以查詢出第x到第y條的信息,由此我們可以只要知道,只要有當前頁的頁碼(page)和總記錄條數(number),就可以實現分頁查詢。Query兩個方法如下:
Query query = session.createQuery("from Products");
query.setFirstResult();// (當前頁面-1)X每頁條數
query.setMaxResults(); // 每頁的條數
當然,我這個是用Hibernate+struts2做的,首先需要構建自己的分頁類FenYe.class
分頁類:
public class FenYe { private int first = 0; // 第一條記錄 private int max = 5; // 每頁顯示的記錄條數 private Integer page; // 輸入頁數 private int curr_page; // 當前頁數 private int pages; // 總的頁數 private Integer number; // 總的記錄數 // 第一頁 public void firstListener() { page=1; //輸入頁=第一頁 first=0; //第一條記錄=0 curr_page = page; //當前頁=輸入頁 } // 最後一頁 public void lastListener() { page = pages; //輸入頁=總頁數 curr_page=page; //當前頁=輸入頁 first = (pages - 1) * max; //第一條記錄=(當前頁-1)*每頁顯示記錄的條數 } //中間頁 public void gotoListener() { curr_page = page; //當前頁=輸入頁 first = (curr_page - 1) * max; //第一條記錄=(當前頁-1)*每頁顯示記錄的條數 } // 判斷是否是第一頁或者最後一頁 public FenyeService fenYe(Integer page, Integer number) { // 設定輸入的頁數 this.setPage(page); // 設定總記錄數 this.setNumber(number); // 初始化總頁數 this.setPages(number); if (page > 0 && page <= this.pages) { // 如果輸入頁數>0<總的頁數 this.gotoListener(); } else if (page <= 0 || number == 0) { // 如果輸入頁數<0或者沒有數據的時候 this.firstListener(); } else if (page > this.pages) { // 如果輸入頁數>總頁數 this.lastListener(); } // 返回自身 return this; } public static void main(String[] args) { FenYe fenye = new FenYe(); fenye.setNumber(11); fenye.setPage(3); fenye.fenYe(); System.out.println("第一條記錄first:" + fenye.getFirst()); System.out.println("每頁顯示的記錄數max:" + fenye.getMax()); System.out.println("輸入頁數page:" + fenye.getPage()); System.out.println("當前頁數curr_page:" + fenye.getCurr_page()); System.out.println("總頁數pages:" + fenye.getPages()); System.out.println("總記錄條數number:" + fenye.getNumber()); } ... 中間的get、set方法就不貼出來了 ... /* * * 對pages的set方法作出如下修改 * * 計算總頁數 * * 如果被整除:總頁數=總數據條數/每頁顯示的條數 * * 如果有余數:總頁數=總數據條數/每頁顯示的條數(取整數)+1 */ public void setPages(int number) { this.pages = number % max == 0 ? number / max : number / max + 1; } }
Hibiernate+struts2分頁(一)