使用 JDBC 从表中选择前 N 行的通用方法

Posted

技术标签:

【中文标题】使用 JDBC 从表中选择前 N 行的通用方法【英文标题】:Generic way to select top N rows from table using JDBC 【发布时间】:2019-08-22 12:21:27 【问题描述】:

我想从 sql-server 中选择前 n 行 SELECT TOP 10 * FROM CUSTOMER; --> n 应该是可配置的

如何使用 JDBC 做到这一点? 我应该写一份准备好的声明并提供吗?而不是 10? 还是我应该构造 SQL 字符串并像普通语句一样执行它?

我只想知道是否有提供动态 FETCH LIMIT(通常是配置值)的事实上的选择

【问题讨论】:

您在寻找Statement.setMaxRows()吗? 您是否要构建一个查询,告知 TOP 语句的编号? 【参考方案1】:

我建议像这样使用 PageableJPA 参考https://www.baeldung.com/jpa-limit-query-results

Page<Passenger> page = repository.findAll(PageRequest.of(0, 1, Sort.by(Sort.Direction.ASC, "seatNumber")));

【讨论】:

以上是关于使用 JDBC 从表中选择前 N 行的通用方法的主要内容,如果未能解决你的问题,请参考以下文章

用于从表中选择具有最新时间戳的行的 JOOQ 代码

如何通过 Jquery 从表中查找按列指定的行的索引和值?

从表中选择不同的记录并执行重复行的列总和(托盘、总和)。并显示重复的行一次[关闭]

javaWeb_JDBC_利用反射以及JDBC元数据编写通用的查询方法

在 MariaDB 中,如何从表中选择前 10 行?

如何从表中删除除前两个和最后一个之外的所有行?