淺談Java分頁技術

來源:互聯網
上載者:User

標籤:

話不多言、我們要實現java分頁技術,我們首先就需要定義四個變數,他們是:

int  pageSize;//每頁顯示多少條記錄

int pageNow;//希望現實第幾頁

int pageCount;//一共有多少頁

int rowCount;//一共有多少條記錄

說明:

1.pageSize是指定的

2.pageNow是使用者選擇的

3.rowCount是從表中查詢得到的

4.pageCount是計算得到的,該計算為:

if(rowCount%pageSize==0)

{

  pageCount=rowCount/pageSize;

}

else

{

  pageCount=rowCount/pageSize+1;

}

以上說明可能大家聽的有點雲裡霧裡,我來舉個例子具體說明一下:

有使用者表,共9條記錄,即:rowCount;每頁顯示3條記錄,即:pageSize=3;那麼根據我們的演算法:pageCount=3,剛好不多不少,如果每頁顯示四條記錄,pageSize=4,那麼pageCount=3,那麼最後一頁只會有1條記錄,所以,不管怎樣都是正確的。

針對前面提出的問題,我們很容易想到,使用select 欄位名列表 from 表名 where id between ? and ?

我們以一個users表為例,顯示第三頁,該查詢語句就是:select * from users userId between 7 and 9;

這個sql語句確實是比較快,但是它有一個問題,就是如果表的id被刪除了,那麼,某頁可能就會少一條記錄。在Sqlserver的查詢分析器中實驗一下,因此我們的最終解決方案是如下語句:

select top pageSize 欄位名列表 from 表名 where id not in(select top pageSize*(pageNow-1) id from 表名);

淺談Java分頁技術

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.