欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java分頁查詢--分頁顯示(實例講解)

 更新時間:2017年08月15日 08:52:54   投稿:jingxian  
下面小編就為大家?guī)硪黄狫ava分頁查詢--分頁顯示(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

當數(shù)據(jù)庫中數(shù)據(jù)條數(shù)過多時,一個頁面就不能顯示,這是要設(shè)置分頁查詢,首先要使用的是數(shù)據(jù)庫sql語句的limit條件實現(xiàn)分組查詢

sql語句大概形式為:

select * from table limit 開始索引,顯示條數(shù)

用該語句就會實現(xiàn)分塊查詢,并且每頁顯示固定條數(shù)。

首先要實現(xiàn)后臺分頁,我們需要知道它有多少頁,每頁有多少行,這就需要知道一共多少行,調(diào)用sql語句時還需要知道每一頁的開始索引,開始索引是根據(jù)當前頁數(shù)算出來的,所以還需要知道當前頁數(shù),查詢后會返回一個列表存儲當前頁數(shù)據(jù)。將這些屬性及獲取設(shè)置的方法封裝成一個類就有了下面的page類:

Page類

public class Page<T> {
  private List<T> data;//數(shù)據(jù)列表
  private int pagenum;//當前頁數(shù)
  private int pagesize;//當前頁顯示條數(shù)
  private int rows;//總行數(shù)
  public Page(int rows,int pagenum, int pagesize) {
    super();
    data=new ArrayList<>();
    this.rows=rows;
    this.setPagesize(pagesize);
    this.setPagenum(pagenum);    
  }
  public Page() {
    super();
  }
  public int getPagenum() {
    return pagenum;
  }
  public void setPagenum(int pagenum) {
    if(pagenum>getTotalpage())
    {
      this.pagenum=getTotalpage();
    }
    else {
      this.pagenum = pagenum;
    }  
    if(pagenum<1)
    {
      this.pagenum=1;
    }
  }
  public int getPagesize() {
    return pagesize;
  }
  public void setPagesize(int pagesize) {
    this.pagesize = pagesize;
  }
  public int getTotalpage() {
    //計算總頁數(shù)
    if(rows%pagesize==0)
    {
      return rows/pagesize;
    }
    else {
      return rows/pagesize+1;
    }    
  }
  public int getRows() {
    return rows;
  }
  public void setRows(int rows) {
    this.rows = rows;
  }
  public int getIndexnum() {
    //獲取索引值
    return pagesize*(pagenum-1);
  }
  public List<T> getData() {
    return data;
  }
  public void setData(List<T> data) {
    this.data = data;
  }
}

初始化時我們只需要獲得數(shù)據(jù)總條數(shù),頁數(shù)及每頁顯示條數(shù)。數(shù)據(jù)總條數(shù)可以用sql語句select count(*)from table 獲得。每次查詢時只需要傳入當前頁數(shù)就可以了。將每次查詢后的page對象傳入jsp前臺頁面,并以一個div來顯示

顯示div

<div>
    <a href="/stuent8.11/stuServlet?pagenum=1" rel="external nofollow" >首頁</a>
    <a href="/stuent8.11/stuServlet?pagenum=${apage.pagenum-1 }" rel="external nofollow" >上一頁</a>
    <c:choose>
      <c:when test="${apage.totalpage<=5 }">
        <c:set var="begin" value="1"></c:set>
        <c:set var="end" value="${apage.totalpage }"></c:set>
      </c:when>
      <c:when test="${apage.totalpage>5 }">
        <c:set var="begin" value="1"></c:set>
        <c:set var="end" value="5"></c:set>
        <c:if test="${apage.pagenum>3 }">
          <c:set var="begin" value="${apage.pagenum-2 }"></c:set>
          <c:set var="end" value="${apage.pagenum+2 }"></c:set>
        </c:if>
        <c:if test="${end>apage.totalpage }">
          <c:set var="begin" value="${apage.totalpage-4 }"></c:set>
          <c:set var="end" value="${apage.totalpage }"></c:set>
        </c:if>
      </c:when>
    </c:choose>
    <c:forEach begin="${begin }" end="${end }" step="1" var="num">
      <c:if test="${apage.pagenum==num }">
        [${num }]
      </c:if>
      <c:if test="${apage.pagenum!=num }">
        <a href="/stuent8.11/stuServlet?pagenum=${num }" rel="external nofollow" >${num }</a>  
      </c:if>
    </c:forEach>
    <a href="/stuent8.11/stuServlet?pagenum=${apage.pagenum+1 }" rel="external nofollow" >下一頁</a>
    <a href="/stuent8.11/stuServlet?pagenum=${apage.totalpage }" rel="external nofollow" >末頁</a>
  </div>

其中的一個choose是用于規(guī)定頁面顯示的最大頁數(shù),這里是5頁,就是說當點到第4頁是時,第1頁就會消失,出現(xiàn)第6頁。

以上這篇Java分頁查詢--分頁顯示(實例講解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • jmeter正則表達式的使用

    jmeter正則表達式的使用

    在jmeter中,可以利用正則表達式提取器來幫助我們完成這一動作,本文就詳細的介紹一下應(yīng)該如何使用,感興趣的可以了解一下
    2021-11-11
  • SpringCloud如何解決服務(wù)之間的通信問題

    SpringCloud如何解決服務(wù)之間的通信問題

    本文主要介紹了SpringCloud如何解決服務(wù)之間的通信問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • Java利用File類創(chuàng)建文件的示例代碼

    Java利用File類創(chuàng)建文件的示例代碼

    這篇文章主要為大家詳細介紹了如何利用Java中的File類創(chuàng)建文件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Spring Web項目spring配置文件隨服務(wù)器啟動時自動加載

    Spring Web項目spring配置文件隨服務(wù)器啟動時自動加載

    這篇文章主要介紹了Spring Web項目spring配置文件隨服務(wù)器啟動時自動加載,加載spring的配置文件,并且只加載一次,從而提高程序效率。具體內(nèi)容詳情大家通過本文一起學(xué)習(xí)吧
    2018-01-01
  • Java實現(xiàn)動態(tài)驗證碼生成

    Java實現(xiàn)動態(tài)驗證碼生成

    這篇文章主要為大家詳細介紹了Java實現(xiàn)動態(tài)驗證碼生成,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Java Reactor反應(yīng)器模式使用方法詳解

    Java Reactor反應(yīng)器模式使用方法詳解

    這篇文章主要介紹了Java Reactor反應(yīng)器模式使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • mybatis-plus-boot-starter包與mybatis-plus-generator的沖突解決

    mybatis-plus-boot-starter包與mybatis-plus-generator的沖突解決

    本文主要介紹了mybatis-plus-boot-starter包與mybatis-plus-generator的沖突解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-10-10
  • java中設(shè)計模式之適配器模式

    java中設(shè)計模式之適配器模式

    這篇文章主要介紹了java中設(shè)計模式之適配器模式的相關(guān)資料,適配器模式將一個類的接口轉(zhuǎn)換成客戶期望的另一個接口。適配器讓原本不兼容的類可以合作得親密無間,需要的朋友可以參考下
    2017-09-09
  • java中線程的sleep()方法和yield()方法的區(qū)別

    java中線程的sleep()方法和yield()方法的區(qū)別

    本文主要介紹了java中線程的sleep()方法和yield()方法的區(qū)別,Thread類的sleep()方法使線程休眠指定時間,不釋放鎖,而yield()提示調(diào)度器當前線程愿意讓出CPU資源,不保證立即切換線程,感興趣的可以了解一下
    2024-10-10
  • springboot集成mybatis官方生成器

    springboot集成mybatis官方生成器

    本文主要介紹了springboot集成mybatis官方生成器,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11

最新評論