FetchSize

2025-04-10 06:49:52  Updated

FetchSize specifies the number of rows each time the database returns for a request.

When you execute a query by using OceanBase Connector/J, you can specify FetchSize to set the number of rows to be retrieved from the database during each round trip. In OceanBase Connector/J, the default value of FetchSize is the default fetch size for the statement object. The fetch size configured will overwrite the default FetchSize value and takes effect on subsequent queries of the statement object.

FetchSize also applies to result sets. When a statement object runs a query, the FetchSize of the statement object is passed to the result set object of the query.

Notice

After the result set is generated, changes made to the FetchSize of the statement object do not take effect on the result set.

The FetchSize of the result set, no matter explicitly set or by default equal to the statement fetch size passed to the result set, can determine the number of rows retrieved during subsequent database access for the result set.

Set the fetch size

You can use the following methods to set and obtain FetchSize for all Statement, PreparedStatement, CallableStatement, and ResultSet objects:

  • void setFetchSize(int rows) throws SQLException

  • int getFetchSize() throws SQLException

To set the FetchSize for a query, call setFetchSize on the statement object before you run the query. If you set the FetchSize to N, N rows are obtained during each access to the database.

After you run the query, you can call setFetchSize on the result set object to overwrite the statement object fetch size passed to it. This affects the number of rows retrieved by the database in subsequent round trips for the original query and also affects subsequent refetching of rows.

Note

  • In Oracle mode, FetchSize of a Statement object cannot be set to a negative value. The default value is 10, which is the same as that in native Oracle.
  • In MySQL mode, FetchSize of a Statement object cannot be set to any negative value except the value of Integer.MIN_VALUE. The default value is 0, which is the same as that in native MySQL.

Preset the fetch direction

Standard JDBC drivers allow you to pre-specify the result set processing direction, also known as the fetch direction. The setting methods are as follows:

  • void setFetchDirection(int direction) throws SQLException

  • int getFetchDirection() throws SQLException

OceanBase Connector/J supports only a forward preset value, which can be specified by using the ResultSet.FETCH_FORWARD static constant. Constants such as ResultSet.FETCH_REVERSE and ResultSet.FETCH_UNKNOWN are not supported. If you attempt to use these constants, an SQL warning is returned and the setting will be ignored.

Contact Us