我正在尝试使用 JDBC 编写一个独立于数据库的应用程序。我现在需要一种方法来从某个表中获取前 N 个条目。看到setMaxRows
JDBC里面有一个方法,但是我用起来不太舒服,因为我怕数据库把所有结果都压出来,只有JDBC驱动才会减少结果。如果我需要一个有十亿行的表中的前 5 个结果,这将打破我的脖子(该表有一个可用的索引)。
为每种数据库编写特殊的 SQL 语句不是很好,但会让数据库进行巧妙的查询计划并停止获取不必要的结果。
我可以依靠setMaxRows
告诉数据库不能工作吗?
我想在最坏的情况下,我不能以希望的方式依赖这种工作。我对 Postgres 9.1 和 Oracle 11.2 最感兴趣,所以如果有人对这些数据库有经验,请继续前进。