当前位置: 首页 > 面试题库 >

JDBC分页

哈沛
2023-03-14
问题内容

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

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

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

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

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


问题答案:

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

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



 类似资料:
  • JDBC ResultSet是否支持分页?或者我应该通过缓存结果集来在我的服务中实现内部分页。我寻找这样一个解决方案的原因是-我不允许更改表结构。如果允许,我可以有一个自动增量列,然后使用该列和限制上的子句获取数据。

  • 我正在尝试调用一个存储过程来在SQL表中创建一个项。运行代码时,运行存储过程并创建项,但抛出此错误。表中存储的值是正确的,generate键生成正确的键。 下面是我创建参数映射的create函数: }

  • 我正在集群模式下运行spark(使用pyspark)并通过JDBC从RDBMS读取数据。我通过查询(而不是直接通过表)读取信息 我使用选项来分区,比如numPartitions、upperBound等。 而且 不幸的是,在生成查询的末尾,在WHERE子句上触发转换分区选项,因此PostGreSQL读取full表full而不使用索引! 我有一个这样的问题

  • 学习如何在Java编程中使用JDBC。 以下是最常用的示例 - 如何与数据库建立连接? 如何使用Java创建,编辑和更改表? 如何显示表的内容? 如何更新,编辑和删除行? 如何使用java命令在数据库中搜索? 如何使用java命令对列的元素进行排序? 如何组合来自多个表的数据? 如何在Java中使用commit语句? 如何在Java中使用预处理语句? 如何设置和回滚到保存点? 如何使用java执行

  • Jython使用zxJDBC package ,它提供了一个易于使用的围绕JDBC的Python包装器。 zxJDBC构建了两个标准: JDBC是Java中数据库访问的标准平台, DBI是Python应用程序的标准数据库API。 ZxJDBC为JDBC提供了符合DBI 2.0标准的接口。 超过200个驱动程序可用于JDBC,它们都与zxJDBC一起使用。 所有主要关系数据库均可使用高性能驱动程序,

  • 分享知识 JDBC的具体工作原理如下: