在Statement与ResultSet上设置提取大小之间的区别

时间:2016-05-23 15:03:44

标签: java oracle jdbc resultset

在Statement与ResultSet上设置提取大小有什么区别? Oracle文档说,如果在Statement上设置了提取大小,那么ResultSet也会使用相同的大小,只要在获取结果集之前设置提取大小即可。如果我在Statement或ResultSet上设置它会有什么不同?我正在使用Oracle数据库。以下是有关它的Oracle文档:

  

获取尺寸

     

默认情况下,当Oracle JDBC运行查询时,它会从数据库游标中一次检索10行的结果集。这是默认的Oracle行提取大小值。您可以通过更改行获取大小值来更改每次访问数据库游标时检索的行数。

     

标准JDBC还允许您为查询指定每个数据库往返提取的行数,并且此数字称为提取大小。在Oracle JDBC中,行预取值用作语句对象中的缺省提取大小。设置提取大小会覆盖行预取设置,并影响通过该语句对象运行的后续查询。

     

获取大小也用于结果集。当语句对象运行查询时,语句对象的提取大小将传递给查询生成的结果集对象。但是,您也可以在结果集对象中设置提取大小,以覆盖传递给它的语句提取大小。

2 个答案:

答案 0 :(得分:4)

获取大小真正重要的唯一地方是ResultSet。创建ResultSet后,它会从用于创建它的Statement获取其获取大小,但稍后可以更改。

Statement的提取大小视为默认值,将传递给它创建的所有ResultSet。如果您不想使用此默认设置,则可以覆盖它。

答案 1 :(得分:2)

没有区别。如果在语句上设置了提取大小,那么它将应用于来自此语句的所有ResultSet实例。