我想使用JDBC实现分页。我想知道的实际情况是“如何分别从数据库中获取第1页和第2页的前50条记录,然后再获得50条记录”
我的查询是Select * from data[数据表包含20,000行]
Select * from data
对于第1页,我可以获得50条记录,对于第2页,我想要获得下50条记录。如何在JDBC中有效地实现它?
我已经搜索过,发现这rs.absolute(row)是跳过首页记录的方法,但是在大型结果集上花费一些时间,我不想花这么多时间。另外,我不想在查询中使用rownum和limit+ offset,因为它们在查询中不太好使用,我不知道为什么,但我仍然不想在查询中使用它。
rs.absolute(row)
rownum
limit
offset
谁能帮助我如何限制ResultSet分页,或者JDBC有什么办法给我们?
ResultSet
没有简单的使用JDBC的有效方法。您必须制定 n行 的 限制, 并 从第i个项目 子句直接开始到SQL,这样才能有效。根据数据库的不同,这实际上可能很容易(请参见MySQL的LIMIT -keyword),而在其他数据库(如Oracle)上则可能会比较棘手(涉及子查询并使用rownum伪列)。
请参阅此JDBC分页教程:http : //java.avdiel.com/Tutorials/JDBCPaging.html