簡體   English   中英

如何僅使用jdbc和標准sql進行分頁?

[英]How can I make pagination with only jdbc and standard sql?

我正在用Java啟動一個新項目。 我只想使用jdbc,不能使用休眠或jpa。 我的數據庫是Microsoft SQL Server。 但是用純jdbc和sql進行分頁似乎非常復雜。 在hibernate / jpa中內置了對分頁的支持。 但我只想使用jdbc和標准sql。 通過互聯網搜索,我找到了各種答案,所有這些答案都試圖通過修改原始查詢來解決問題。 我想避免在我的原始查詢中添加任何用於分頁的內容。

我的SQL Server版本是“ Microsoft SQL Server 2008”

在SQL Server 2012及更高版本中,可以使用OFFSET FETCH子句,但在SQL Server 2005及更高版本中,可以使用ROW_NUMBER()函數。 這里有一個例子:

DECLARE @PageNumber int = 1;
DECLARE @PageSize int = 20;

WITH Q AS
(
    SELECT *, ROW_NUMBER() OVER (ORDER BY TheOrderColumn) AS record_number
    FROM YourOriginalQuery
)
SELECT *
FROM Q
WHERE 
    record_number > (@PageNumber - 1) * @PageSize
    AND record_number <= @PageNumber * @PageSize
ORDER BY record_number;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM