一尘不染

JDBC分页

java

我想使用JDBC实现分页。我想知道的实际情况是“如何分别从数据库中获取第1页和第2页的前50条记录,然后再获得50条记录”

我的查询是Select * from data[数据表包含20,000行]

对于第1页,我可以获得50条记录,对于第2页,我想要获得下50条记录。如何在JDBC中有效地实现它?

我已经搜索过,发现这rs.absolute(row)是跳过首页记录的方法,但是在大型结果集上花费一些时间,我不想花这么多时间。另外,我不想在查询中使用rownumlimit+
offset,因为它们在查询中不太好使用,我不知道为什么,但我仍然不想在查询中使用它。

谁能帮助我如何限制ResultSet分页,或者JDBC有什么办法给我们?


阅读 132

收藏
2020-09-08

共1个答案

一尘不染

没有简单的使用JDBC的有效方法。您必须制定 n行限制,从第i个项目
子句直接开始到SQL,这样才能有效。根据数据库的不同,这实际上可能很容易(请参见MySQL的LIMIT
-keyword),而在其他数据库(如Oracle)上则可能会比较棘手(涉及子查询并使用rownum伪列)。

请参阅此JDBC分页教程:http :
//java.avdiel.com/Tutorials/JDBCPaging.html

2020-09-08