Java 如何仅使用jdbc和标准sql进行分页?

Java 如何仅使用jdbc和标准sql进行分页?,java,sql-server,jdbc,pagination,Java,Sql Server,Jdbc,Pagination,我正在用java启动一个新项目。我只想使用jdbc,不想使用hibernate或jpa。我的数据库是Microsoft SQL Server。但使用纯jdbc和sql进行分页似乎非常复杂。hibernate/jpa中内置了分页支持。但我只想使用jdbc和标准sql。通过互联网搜索,我找到了各种各样的答案,它们都试图通过修改原始查询来解决问题。我希望避免在原始查询中添加任何内容,而只是为了分页 我的SQL Server版本是Microsoft SQL Server 2008在SQL Server

我正在用java启动一个新项目。我只想使用jdbc,不想使用hibernate或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;

我认为这可能会有所帮助:分页很复杂。您必须修改您的搜索查询,以便能够支持排序,选择第2页的10个产品,并且您应该还有一个查询来计算记录数。使用SQL server 2008在服务器端实现分页的最佳方法是使用ROW_number OVER ORDER BYColumn@Jes你好,请解释一下。请给我一个例子或链接。@sohan nohemy,请看我的答案