程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Hibernate分頁的設計和編碼

Hibernate分頁的設計和編碼

編輯:關於JAVA

1. 當前頁碼的表單參數 listuser.do?page=2

同時轉換成一個 int 類型的頁碼變量

int currentPage = Integer.parseInt(

request.getParameter("page");// 當前頁

2. 下一頁 listuser.do?page=${currentPage+1}

上一頁 listuser.do?page=${currentPage-1}

3. 一頁顯示多少數據

int pageSize = 5;//每頁顯示的數據數

4. 總頁數 totalPage

1) 先從數據庫取得總記錄數

dao.UserDAO#getUserTotalCount()

int totalCount = executeQuery("select count(*) from Users");

2) 根據一頁的數據類計算出總頁數

    dao.UserManager#getTotalPage(int pageSize)
      // 得到頁面總數
    int totalPageCount = ((totalCount + pageSize) - 1) / pageSize;
    if(totalPageCount == 0) {
      totalPageCount = 1;
    }

5. 從數據庫裡把第currentPage頁的數據讀取出來(Hibernate), DAO 層的代碼

dao.UserDAO#findPagedAll(int currentPage, int pageSize)

兩個參數: currentPage 當前頁(從1開始的)

pageSize 取多少數據

  String queryString = "from User";
  Query queryObject = getSession().createQuery(queryString);
  queryObject.setFirstResult((currentPage - 1) * pageSize);
  queryObject.setMaxResults(pageSize);
  List result = queryObject.list();

6. 在前台顯示上下頁的鏈接,並根據總頁數的上下限來避免讓用戶跳到第-1頁或者比最大頁數還大的頁碼哪裡

  <c:if test="${currentPage > 1}">
    [ 上一頁的鏈接 ]
  </c:if>
  <c:if test="${currentPage <= 1}">
    [ 上一頁的文本 ]
  </c:if>

7. 通過 forEach 來顯示數據

<c:forEach items="${users}" var="user" >
 ${user.id}
 ${user.username}
<c:/forEach>

8. 通過下拉菜單來跳轉頁面

轉到

  <script>
  // 頁面跳轉函數
  // 參數: 包含網址的選擇框(SELECT元素)
  function jumpPage(select) {
    var newUrl = "/hibernate_page/index.jsp?page=" + select.value;
    //alert(newUrl);
    document.location = newUrl;
  }
  </script>
   <!-- 輸出 HTML SELECT 元素, 並選中當前頁面編碼 -->
   <select onchange='jumpPage(this);'>
   <option value="1" selected>1頁</option>
   <option value="2" >2頁</option>
   </select>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved