java - JDBC 是否有最大 ResultSet 大小?

标签 java jdbc hive resultset

是否存在 JDBC 专门从 Hive 查询放入 ResultSet 的最大行数?我不是在谈论获取大小或分页,而是在 ResultSet 中返回的总行数。

如果我错了请更正我,但是提取大小设置了 jdbc 在数据库中每次传递时查看要处理的行数,将适当的响应插入到 ResultSet 中。当它检查完表中的所有记录后,它会将 ResultSet 返回给 Java 代码。我问的是返回给 Java 代码的行数是否有限制。

如果它没有最大行数,该类是否存在任何可能导致某些记录被删减的内在因素?

最佳答案

不,它不能那样工作。 JDBC 只是 native 数据库的包装器。但是 JDBC 或数据库游标的工作方式相同:

  • 您向数据库发送一个查询(通过 JDBC)
  • 数据库分析查询并初始化游标(JDBC中的ResulSet)
  • 当您从 ResultSet 获取数据时,数据库软件会遍历数据库以获取新行并填充 ResultSet

因此,ResultSet 可以包含的行数没有限制,java 客户端程序可以处理的行数也没有限制。例如,如果您尝试加载内存中的所有行以填充列表并耗尽客户端应用程序内存,那么唯一的限制就来了。但是,如果您处理行而不将它们保存在内存中,则没有限制(就像您读取文件时发生的情况一样)。

关于java - JDBC 是否有最大 ResultSet 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26619867/

相关文章:

java - JVM如何初始化父类(super class)和子类中的字段?

Java-找不到符号(swing)

mysql - 在 mysql jdbc 中,自动提交会影响所有连接吗?

java - Oracle PoolDataSource 在 commit() 之前让 DB 游标保持打开状态,这是预期的行为吗?

java - ResultSet 关闭后不允许执行操作[SQL 异常]

hadoop - 使用 Unix 命名管道的 Hive 到 vertica 数据导出

mysql - 使用不同的定义重建 Hive 表

java - Neo4j 2.2.2 服务器在通过 java 代码生成数据库后不启动

java - java中打开Selector的不同方式

hadoop - DataStax Enterprise 3.2-Hive S3 NoSuchBucket