Java 如何仅使用jdbc和标准sql进行分页?
我正在用java启动一个新项目。我只想使用jdbc,不想使用hibernate或jpa。我的数据库是Microsoft SQL Server。但使用纯jdbc和sql进行分页似乎非常复杂。hibernate/jpa中内置了分页支持。但我只想使用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
我的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,请看我的答案