OceanBase
English日本語简体中文
Docs Home
Products
Integrations
Release Notes

Databases

OceanBase DatabaseOceanBase Cloud OceanBase Best Practices

Tools

OceanBase Cloud PlatformOceanBase Migration ServiceOceanBase Developer CenterOceanBase Migration AssessmentOceanBase Admin ToolOceanBase Loader and DumperOceanBase DeployerKubernetes operator for OceanBaseOceanBase Diagnostic Tool OceanBase Binlog Service

Connectors and Middleware

OceanBase Database Proxy OceanBase Connector/C OceanBase Connector/J OceanBase Connector/ODBC OceanBase Connector/NETOceanBase Command-Line Client

Databases

OceanBase DatabaseOceanBase Cloud OceanBase Best Practices

Connectors and Middleware

OceanBase Database Proxy OceanBase Connector/C OceanBase Connector/J OceanBase Connector/ODBC OceanBase Connector/NETOceanBase Command-Line Client

Tools

OceanBase Cloud PlatformOceanBase Migration ServiceOceanBase Developer CenterOceanBase Migration AssessmentOceanBase Admin ToolOceanBase Loader and DumperOceanBase DeployerKubernetes operator for OceanBaseOceanBase Diagnostic Tool OceanBase Binlog Service
OceanBase DatabaseOceanBase Cloud ToolsConnectors and MiddlewareLifecycle Support Policy

OceanBase Connector/J

V2.2.6
  • What is OceanBase Connector J?
    • JDBC overview
    • Compatibility requirements
  • Instructions
    • Install OceanBase Client
    • Basic operations
      • Import packages
      • Create a database connection
      • Create a Statement object
      • Run queries and retrieve ResultSet objects
      • Process a ResultSet object
      • Close ResultSet and Statement objects
      • Modify a database
      • Commit changes
      • Close a database connection
      • Example
    • Handle SQL exceptions
    • Use CallableStatements to call stored procedures
    • Java data streams
      • Overview of Java data streams
      • LONG and LONG RAW data types
      • LOB data types
    • Use LOBs
      • Overview of LOB data types
      • LOB data API
      • LOB locator API
      • CHAR, VARCHAR, and RAW data types
    • Data sources and URL
      • Data source overview
      • Data source characteristics and properties
      • Create and connect to a data source instance
      • Database URL
    • Result set
      • Limits and degradation rules
      • Fetch size
      • Refetch rows
      • Cursor result sets
    • Statement caching
      • Statement caching overview
      • Use statement cache
      • Reuse statement objects
    • Failover and load balancing modes
    • Batch processing
    • JDBC security features
    • SQL NetworkCostInfo
    • Troubleshooting
    • Common APIs
      • java.sql.Connection
      • java.sql.CallableStatement
      • java.sql.DatabaseMetaData
      • java.sql.Driver
      • java.sql.PreparedStatement
      • java.sql.ParameterMetaData
      • java.sql.ResultSet
      • java.sql.ResultSetMetaData
      • java.sql.Statement
      • javax.sql.ConnectionPoolDataSource
      • javax.naming.Context
      • javax.sql.PooledConnection
    • Reference
      • Supported SQL and PL data types
  • Features specific to the Oracle mode
    • Binary Protocol (Prepared Statements)
      • COM_STMT_PREPARE_EXECUTE
      • COM_STMT_SEND_PIECE_DATA
    • Call PL stored procedures
    • Result set performance
    • Use ARRAY and STRUCT classes
    • Distributed transactions
      • Overview of distributed transactions
      • XA components
      • Distributed transaction examples
    • Error messages in Oracle mode
    • Data types supported in Oracle mode
  • Release Notes
    • V2.2
      • OceanBase Connector/J V2.2.11
      • OceanBase Connector/J V2.2.10
      • OceanBase Connector/J V2.2.6
      • OceanBase Connector/J V2.2.3
      • OceanBase Connector/J V2.2.0

Download PDF

Document Feedback
  1. Documentation Center
  2. OceanBase Connector/J
  3. V2.2.6

Cursor result sets

Last Updated:2026-09-04 08:24:25

Result set types
Use useCursorFetch

A cursor is a data processing method that allows you to browse one or more rows forward or backward in a result set at a time, for you to view or process data in the result set.

Result set types

JDBC result sets are divided into the following three types by configuration:

  • General result sets: All results are obtained at a time. This achieves fast execution but is prone to cause OOM issues.

  • Streaming result sets: Data is read from the socket row by row rather than all at a time. Streaming result sets can be used for statement.setFetchSize(Integer.MIN_VALUE). A streaming result set facilitates fast execution, but the execution cannot be stopped once the reading starts. This is prone to cause network issues.

  • Cursor result sets: To return a cursor result set, the database must support COM_STMT_FETCH and useServerPrepStmts must be set to true. Use the useCursorFetch=true syntax, and specify fetchSize. Cursor result sets result in slow execution and are available only when ODP V1.8.5 or later and OBServer V2.2.75 or later are used.

Use useCursorFetch

Perform the following steps to use useCursorFetch:

  1. Establish a link and set parameters useCursorFetch and useServerPrepStmts.

    String url = "jdbc:mysql://host:port/test?useServerPrepStmts=false&useCursorFetch=true"conn = DriverManager.getConnection(url,"admin@mysql", "admin");
    
  1. Generate the Prepare statement.

    PreparedStatement pstmt = conn.prepareStatement("select * from tab",ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
    
  1. Set fetchsize.

    pstmt.setFetchSize(3);
    
  1. Execute the statement.

    ResultSet rs = pstmt.executeQuery();
    
  1. Cyclically obtain the next row of data.

    while (rs.next()) {}
    

Previous topic

Refetch rows
Last

Next topic

Statement caching overview
Next
on this page
Result set types
Use useCursorFetch