gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 07:47:31 24 4
gpt4 key购买 nike

我正在用 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;

关于java - 如何仅使用 jdbc 和标准 sql 进行分页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33719700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com