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 override 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 the fetch size for all Statement, PreparedStatement, CallableStatement, and ResultSet objects:
void setFetchSize(int rows) throws SQLExceptionint 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 override the statement object fetch size passed to it. This affects the number of rows retrieved by the database in subsequent trips for the original query and also affects subsequent refetching of rows.
Note
- In Oracle mode, Statement FetchSize cannot be set to a negative number. The default value is 10, which is the same as that in native Oracle.
- In MySQL mode, Statement FetchSize 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 SQLExceptionint 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.