Java JDBC是否有最大的结果集大小?

Java JDBC是否有最大的结果集大小?,java,jdbc,hive,resultset,Java,Jdbc,Hive,Resultset,JDBC专门从配置单元查询放入ResultSet的行数是否有上限?我说的不是fetch size或paging,而是ResultSet中返回的行总数 如果我错了,请纠正我,但是fetch大小设置了jdbc在数据库中每次传递时要处理的行数,并将适当的响应插入到ResultSet中。当它检查完表中的所有记录后,它将结果集返回给Java代码。我想问的是,返回到Java代码的行数是否有限制 如果它没有最大行数,那么该类是否存在任何固有的可能导致某些记录被删除的情况?否,它不是这样工作的。JDBC只是本地

JDBC专门从配置单元查询放入ResultSet的行数是否有上限?我说的不是fetch size或paging,而是ResultSet中返回的行总数

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


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

否,它不是这样工作的。JDBC只是本地数据库的包装器。但JDBC或数据库游标的工作原理相同:

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

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

程序运行时,结果集对象背后的数据是否正在更新?我猜它应该是
Integer。MAX\u SIZE
我假设限制是用作基类的任何集合类型的限制,我认为这接近
Integer.MAX\u SIZE
或存储记录的可用内存(哪一个先用完)Java数组长度也有限制,您应该能够使用来查看是否设置了任何限制(0表示没有限制,如果设置了限制,则会自动删除过多的行),但除此之外,我猜限制将与内存或其他评论者建议的其他资源有关。