首批通过分布式安全可靠测评,为关键业务系统打造
FetchSize
更新时间:2026-05-08 16:10:59
FetchSize(行获取量)用于控制每次向数据库请求返回的行数。
使用 OceanBase Connector/J 执行查询时,还可以指定每次查询数据库往返所获取的行数,该行数称为 FetchSize。在 OceanBase Connector/J 中,FetchSize 默认值为语句对象中的默认访存大小。设置访存大小会覆盖行 FetchSize 默认值,并影响该语句对象的后续查询。
FetchSize 也用于结果集中。当语句对象运行查询时,语句对象的 FetchSize 将传递给查询的结果集对象。
注意
生成结果集后,对语句对象的 FetchSize 所做的更改不会对该结果集产生影响。
无论是显式设置的结果集的 FetchSize,还是默认等于传递给语句 FetchSize,都可以用于确定后续对该结果集进行数据库访问时检索到的行数。
设置提取大小
对所有 Statement、PreparedStatement、CallableStatement 和 ResultSet 对象,可以使用以下方法来设置和获取 FetchSize:
void setFetchSize(int rows) throws SQLExceptionint getFetchSize() throws SQLException
要设置查询的 FetchSize,请在运行查询之前在语句对象上调用 setFetchSize。如果将 FetchSize 设置为 N,则每次访问数据库时都会获取 N 行。
运行查询后,可以在结果集对象上调用 setFetchSize 来覆盖传递给它的语句对象访存大小。这将影响后续数据库为原始查询获取的行数,并影响以后的行重取行为。
说明
- Oracle 模式下,Statement FetchSize 不可以设置为负数,默认值为 10,与原生 Oracle 一致。
- MySQL模式下,Statement FetchSize 不可以设置除
Integer.MIN_VALUE之外的负数,默认值为 0,与原生 MySQL 一致。
预设提取方向
标准 JDBC 驱动可以预先指定用于处理结果集的方向(称为提取方向)。设置方法如下:
void setFetchDirection(int direction) throws SQLExceptionint getFetchDirection() throws SQLException
OceanBase Connector/J 仅支持向前的预设值,可以通过输入 ResultSet.FETCH_FORWARD 静态常量值来指定该值。不支持值 ResultSet.FETCH_REVERSE 和 ResultSet.FETCH_UNKNOWN,如果尝试指定会导致 SQL 警告,并且设置将被忽略。