[英]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.