JDBC是否具有最大ResultSet大小?

时间:2014-10-28 22:48:19

标签: java jdbc hive resultset

JDBC是否会将特定于Hive查询的最大行数放入ResultSet中?我不是在讨论获取大小或分页,而是在ResultSet中返回的总行数。

如果我错了,请纠正我,但是fetch size设置jdbc在数据库中每次传递时处理的行数,并在ResultSet中插入适当的响应。当它遍历表中的所有记录时,它将ResultSet返回给Java代码。我问的是返回Java代码的行数是否有限制。

如果它没有最大行数,那么该类是否有任何固有的东西可能导致某些记录被删除?

1 个答案:

答案 0 :(得分:15)

不,它不起作用。 JDBC只是本机数据库的包装器。但是JDBC或数据库游标的工作原理相同:

  • 您将查询(通过JDBC)发送到数据库
  • 数据库分析查询并初始化游标(JDBC中的ResulSet)
  • 从ResultSet中获取数据时,数据库软件会在数据库中走动以获取新行并填充ResultSet

因此,ResultSet可以包含的行数没有限制,也不限制java客户端程序可以处理的行数。如果您尝试加载内存中的所有行以填充列表(例如,耗尽客户端应用程序内存),则会出现唯一的限制。但是如果您处理行并且不将它们保存在内存中,则没有限制(与读取文件时的情况完全相同)。