2012-10-30 30 views
4

我有超過3000行結果集的查詢。我使用迭代器迭代每條記錄。所以我必須減少系統的負載,我想最好的方法是在jsp中使用分頁。如果有人有更好的主意,我會很高興聽到它。像取數字或類似的東西。 演示技術是struts。 如果您認爲分頁好,請幫助我。jsp分頁

+0

什麼是你的具體問題? –

+1

爲了提高性能,我強烈建議儘可能在數據庫級別使用分頁。 –

+3

看看這裏:http://theopentutorials.com/examples/java-ee/jsp/pagination-in-servlet-and-jsp/,這包含完整的例子。 –

回答

1

尋呼結果在JSP中設置解決了這個問題

2

查詢數據庫中有限制,我的意思是把查詢限制在第一頁中說0 to 50。當請求第一頁然後改變你的限制0+(50*1) to 50+(50*1)和第n頁,它會像0+(50*n) to 50+(50*n)

+0

我不知道如何在數據庫級別使用分頁? – AFF

+0

Quoi:我如何在我的查詢中使用限制?它是否返回不同頁面的結果? – AFF

+1

你只需改善你的查詢。 **選擇**需要什麼。 –

1

分頁是一個好主意。但是,您應該記住,您不僅需要才能使其工作,但您也必須瞭解其目的。

執行分頁。但是如果你實現了分頁,但仍然是獲取相同數量的行,你的目的是失敗的。你應該以及改善您的查詢。您應該獲取精確的行數確切條目的數量要顯示在您的分頁的單頁中。這樣,您的應用程序服務器和數據庫服務器都將從您的實施中受益。

+0

這可能是事實,但它也可能是錯誤的。獲取3000行的數據庫查詢速度可能非常快,尤其是在Web服務器和數據庫共存的情況下,主要的性能問題可能是由於這些3000行在互聯網上的傳輸以及這3000行的顯示瀏覽器。 –

+0

@JBNizet這就是爲什麼他應該**只查詢需要的**。例如,如果分頁是每頁20個條目,例如使用一個查詢,例如從Rownum> 1和rownum <21;的表中選擇*(例如),那麼通過互聯網傳輸的只有20行。同樣,顯示這個最小數量的行應該不成問題。 –

+0

想象一下,我必須加載所有電子郵件,我該怎麼辦?我認爲最好的辦法是分頁。因爲我必須加載所有電子郵件,但在不同的頁面中顯示它們。 – AFF