OceanBase logo

OceanBase

A unified distributed database ready for your transactional, analytical, and AI workloads.

Product Overview
DEPLOY YOUR WAY

OceanBase Cloud

The best way to deploy and scale OceanBase

OceanBase Enterprise

Run and manage OceanBase on your infra

TRY OPEN SOURCE

OceanBase Community Edition

The free, open-source distributed database

OceanBase seekdb

Open source AI native search database

Customer Stories

Real-world success stories from enterprises across diverse industries.

View All
BY USE CASES

Mission-Critical Transactions

Global & Multicloud Application

Elastic Scaling for Peak Traffic

Real-time Analytics

Active Geo-redundancy

Database Consolidation

Resources

Comprehensive knowledge hub for OceanBase.

Blog

Live Demos

Training & Certification

Documentation

Official technical guides, tutorials, API references, and manuals for all OceanBase products.

View All
PRODUCTS

OceanBase Cloud

OceanBase Database

Tools

Connectors and Middleware

QUICK START

OceanBase Cloud

OceanBase Database

BEST PRACTICES

Practical guides for utilizing OceanBase more effectively and conveniently

Company

Learn more about OceanBase – our company, partnerships, and trust and security initiatives.

About OceanBase

Partner

Trust Center

Contact Us

International - English
中国站 - 简体中文
日本 - 日本語
Sign In
Start on Cloud

OceanBase

A unified distributed database ready for your transactional, analytical, and AI workloads.

Product Overview
DEPLOY YOUR WAY

OceanBase Cloud

The best way to deploy and scale OceanBase

OceanBase Enterprise

Run and manage OceanBase on your infra

TRY OPEN SOURCE

OceanBase Community Edition

The free, open-source distributed database

OceanBase seekdb

Open source AI native search database

Customer Stories

Real-world success stories from enterprises across diverse industries.

View All
BY USE CASES

Mission-Critical Transactions

Global & Multicloud Application

Elastic Scaling for Peak Traffic

Real-time Analytics

Active Geo-redundancy

Database Consolidation

Comprehensive knowledge hub for OceanBase.

Blog

Live Demos

Training & Certification

Documentation

Official technical guides, tutorials, API references, and manuals for all OceanBase products.

View All
PRODUCTS
OceanBase CloudOceanBase Database
ToolsConnectors and Middleware
QUICK START
OceanBase CloudOceanBase Database
BEST PRACTICES

Practical guides for utilizing OceanBase more effectively and conveniently

Learn more about OceanBase – our company, partnerships, and trust and security initiatives.

About OceanBase

Partner

Trust Center

Contact Us

Start on Cloud
编组
All Products
    • Databases
    • iconOceanBase Database
    • iconOceanBase Cloud
    • iconOceanBase Tugraph
    • iconInteractive Tutorials
    • iconOceanBase Best Practices
    • Tools
    • iconOceanBase Cloud Platform
    • iconOceanBase Migration Service
    • iconOceanBase Developer Center
    • iconOceanBase Migration Assessment
    • iconOceanBase Admin Tool
    • iconOceanBase Loader and Dumper
    • iconOceanBase Deployer
    • iconKubernetes operator for OceanBase
    • iconOceanBase Diagnostic Tool
    • iconOceanBase Binlog Service
    • Connectors and Middleware
    • iconOceanBase Database Proxy
    • iconEmbedded SQL in C for OceanBase
    • iconOceanBase Call Interface
    • iconOceanBase Connector/C
    • iconOceanBase Connector/J
    • iconOceanBase Connector/ODBC
    • iconOceanBase Connector/NET
icon

OceanBase Connector/J

V2.4.18

  • What is OceanBase Connector J?
    • Overview of OceanBase Connector/J
    • Compatibility requirements
  • Install Driver
    • Install and load OceanBase Connector/J
  • Instructions
    • Quick start
      • Import packages
      • Establish a database connection
      • Create a Statement object
      • Run queries and retrieve ResultSet objects
      • Process ResultSet objects
      • Close ResultSet and Statement objects
      • Manage tables and data
      • Commit changes
      • Close a database connection
      • Examples
    • Data sources and URL
      • Data source overview
      • Database URL
      • clientInfoProvider
    • Java data streams
      • Overview of Java data streams
      • LONG and LONG RAW data types
      • Use LOBs
        • Overview of LOB data types
        • LOB data interface
        • LOB locator interface
      • CHAR, VARCHAR, and RAW data types
    • Statement caching
      • Overview of statement caching
      • Use statement caching
      • Reuse statement objects
    • Call a stored procedure
    • Handle SQL exceptions
    • Result set
      • Overview of result sets
      • Limitations
      • FetchSize
      • refreshRow
      • useCursorFetch
    • Batch processing
    • Failover and Load-Balancing
      • Failover and load balancing modes
      • LoadBalance strategies
      • Load balancing strategy configuration methods
      • Replication mode
    • Rich client
    • Logging
    • Network overheads
    • Show Trace
    • Security features
    • Troubleshooting
  • Reference
    • Features specific to the Oracle mode
      • Binary Protocol (Prepared Statements)
        • COM_STMT_PREPARE_EXECUTE
        • COM_STMT_SEND_PIECE_DATA
      • Call PL stored procedures
      • Scrollability of a result set
      • Use ARRAY and STRUCT classes
      • Distributed transactions
        • Overview
        • XA components
        • Distributed transaction examples
      • Obtain remarks
      • Data types supported in Oracle mode
      • Error messages in Oracle mode
    • Supported SQL and PL data types
    • Common APIs
      • Overview
      • 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
      • com.oceanbase.jdbc.ObPrepareStatement
    • Behavior differences between JDBC strict compatibility mode and non-strict compatibility mode
  • Release Notes
    • V2.4
      • OceanBase Connector/J V2.4.18
      • OceanBase Connector/J V2.4.17
      • OceanBase Connector/J V2.4.16
      • OceanBase Connector/J V2.4.15
      • OceanBase Connector/J V2.4.14
      • OceanBase Connector/J V2.4.13
      • OceanBase Connector/J V2.4.12
      • OceanBase Connector/J V2.4.11
      • OceanBase Connector/J V2.4.8
      • OceanBase Connector/J V2.4.5
      • OceanBase Connector/J V2.4.4
      • OceanBase Connector/J V2.4.3
      • OceanBase Connector/J V2.4.2
      • OceanBase Connector/J V2.4.1
      • OceanBase Connector/J V2.4.0
    • V2.2
      • OceanBase Connector/J V2.2.11
      • OceanBase Connector/J V2.2.10
      • OceanBase Connector/J V2.2.7
      • OceanBase Connector/J V2.2.6
      • OceanBase Connector/J V2.2.3
      • OceanBase Connector/J V2.2.0

Download PDF

Overview of OceanBase Connector/J Compatibility requirements Install and load OceanBase Connector/J Import packages Establish a database connection Create a Statement object Run queries and retrieve ResultSet objects Process ResultSet objects Close ResultSet and Statement objects Manage tables and data Commit changes Close a database connection Examples Data source overview Database URLclientInfoProvider Overview of Java data streams LONG and LONG RAW data types CHAR, VARCHAR, and RAW data types Overview of statement caching Use statement caching Reuse statement objects Call a stored procedure Handle SQL exceptions Overview of result sets Limitations FetchSize refreshRow useCursorFetch Batch processing Failover and load balancing modes LoadBalance strategies Load balancing strategy configuration methods Replication mode Rich client Logging Network overheads Show Trace Security features Troubleshooting Call PL stored procedures Scrollability of a result set Use ARRAY and STRUCT classes Obtain remarks Data types supported in Oracle mode Error messages in Oracle mode Supported SQL and PL data types Overview 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 com.oceanbase.jdbc.ObPrepareStatement Behavior differences between JDBC strict compatibility mode and non-strict compatibility mode OceanBase Connector/J V2.4.18 OceanBase Connector/J V2.4.17 OceanBase Connector/J V2.4.16 OceanBase Connector/J V2.4.15 OceanBase Connector/J V2.4.14 OceanBase Connector/J V2.4.13 OceanBase Connector/J V2.4.12 OceanBase Connector/J V2.4.11 OceanBase Connector/J V2.4.8 OceanBase Connector/J V2.4.5 OceanBase Connector/J V2.4.4 OceanBase Connector/J V2.4.3 OceanBase Connector/J V2.4.2 OceanBase Connector/J V2.4.1 OceanBase Connector/J V2.4.0 OceanBase Connector/J V2.2.11 OceanBase Connector/J V2.2.10 OceanBase Connector/J V2.2.7 OceanBase Connector/J V2.2.6 OceanBase Connector/J V2.2.3 OceanBase Connector/J V2.2.0
OceanBase logo

The Unified Distributed Database for the AI Era.

Follow Us
Products
OceanBase CloudOceanBase EnterpriseOceanBase Community EditionOceanBase seekdb
Resources
DocsBlogLive DemosTraining & CertificationTicket
Company
About OceanBaseTrust CenterLegalPartnerContact Us
Follow Us

© OceanBase 2026. All rights reserved

Cloud Service AgreementPrivacy PolicySecurity
Contact Us
Document Feedback
  1. Documentation Center
  2. OceanBase Connector/J
  3. V2.4.18
iconOceanBase Connector/J
V 2.4.18
Databases
  • OceanBase Database
  • OceanBase Cloud
  • OceanBase Tugraph
  • Interactive Tutorials
  • OceanBase Best Practices
Tools
  • OceanBase Cloud Platform
  • OceanBase Migration Service
  • OceanBase Developer Center
  • OceanBase Migration Assessment
  • OceanBase Admin Tool
  • OceanBase Loader and Dumper
  • OceanBase Deployer
  • Kubernetes operator for OceanBase
  • OceanBase Diagnostic Tool
  • OceanBase Binlog Service
Connectors and Middleware
  • OceanBase Database Proxy
  • Embedded SQL in C for OceanBase
  • OceanBase Call Interface
  • OceanBase Connector/C
  • OceanBase Connector/J
  • OceanBase Connector/ODBC
  • OceanBase Connector/NET
  • V 2.4.18
  • V 2.4.17
  • V 2.4.16
  • V 2.4.15
  • V 2.4.14
  • V 2.4.5
  • V 2.4.4
  • V 2.4.3
  • V 2.4.2
  • V 2.4.1
  • V 2.4.0
  • V 2.2.11
  • V 2.2.10
  • V 2.2.7
  • V 2.2.6
  • V 2.2.3
  • V 2.2.0

OceanBase Connector/J V2.4.18

Last Updated:2026-05-11 09:51:40  Updated
Share
What is on this page
Version overview
New features
JDBC supports replication mode
changeUser interface supports Auth Switch
getProceduresReturnsFunctions connection parameter
Compatibility changes
URL parameter changes
Behavior of obStrictJdbcCompatibility
Bug fixes
MySQL compatibility
Oracle compatibility
Data precision and protocols

folded

Share

Release date: May 6, 2026 Version: V2.4.18

Version overview

JDBC V2.4.18 enhances high availability and MySQL compatibility. It introduces support for the replication mode: in scenarios where OceanBase Database is deployed in a single-node primary-standby configuration without using ODP, JDBC can automatically switch between the primary and standby nodes (failover) through the replication mode, meeting the high availability requirements of single-node deployment. It also adds support for handling Auth Switch in the changeUser interface, improving the user switching scenarios under the caching_sha2_password authentication method. Additionally, it introduces the getProceduresReturnsFunctions connection parameter to control whether the getProcedures() and getProcedureColumns() methods in the DatabaseMetaData API return metadata of functions with the same name as stored procedures. Furthermore, this version fixes multiple critical defects, further improving the driver's capabilities and overall stability.

New features

JDBC supports replication mode

In OceanBase Database 4.x distributed clusters, ODP is typically deployed, and applications connect to the cluster using the SERVICE_NAME parameter. During primary-standby failover, ODP handles the switch, and applications do not need to modify the connection string. In OceanBase Database single-node deployment, ODP is usually not deployed, and the SERVICE_NAME method cannot be used. In single-node primary-standby deployment, JDBC or other drivers are required to implement automatic primary-standby switching.

V2.4.18 introduces the replication mode: you can configure both primary and standby nodes in the URL. If the primary node fails, JDBC automatically switches to the standby node to continue providing services, achieving automatic failover and enhancing the disaster recovery capabilities of single-node primary-standby deployment.

For more information, see Replication mode (single-node primary-standby failover).

changeUser interface supports Auth Switch

When using the caching_sha2_password authentication method, the server may return an Auth Switch Request to switch the authentication plugin during user switching via the changeUser interface. In previous versions, the changeUser interface did not handle Auth Switch, leading to failed user switching under this authentication method.

V2.4.18 adds support for recognizing and handling Auth Switch messages in the changeUser interface, enabling correct authentication switching under the caching_sha2_password method and improving user switching capabilities in secure authentication scenarios.

getProceduresReturnsFunctions connection parameter

MySQL JDBC provides the getProceduresReturnsFunctions parameter to control whether the getProcedures() and getProcedureColumns() methods in DatabaseMetaData return metadata of functions with the same name as stored procedures. In previous versions of OceanBase JDBC, this parameter was missing, and by default, metadata of both stored procedures and functions were returned.

V2.4.18 introduces the URL parameter getProceduresReturnsFunctions to control whether the above-mentioned interfaces return function metadata, improving consistency with MySQL JDBC behavior.

Compatibility changes

The compatibility changes in this version mainly involve the following URL parameters.

URL parameter changes

The following URL parameters are modified:

Parameter
Change
Description
getProceduresReturnsFunctions New Controls whether DatabaseMetaData.getProcedures() and getProcedureColumns() return metadata of functions with the same name as stored procedures. The default value is true, which returns metadata of both stored procedures and functions. If set to false, only metadata of stored procedures is returned.
obStrictJdbcCompatibility New Controls whether to strictly comply with MySQL JDBC and Oracle JDBC. The default value is false, which complies with the behavior of previous versions of OceanBase JDBC. If set to true, strict compliance mode is enabled. This parameter affects the compatibility behavior of V2.4.18 and later.

Behavior of obStrictJdbcCompatibility

Strict compliance mode (obStrictJdbcCompatibility=true)

  • Adds SQL type judgment for executeBatch and executeLargeBatch: if the SQL type is SELECT, an exception is thrown, consistent with the behavior of MySQL JDBC and Oracle JDBC.
  • For executeUpdate and executeLargeUpdate: in MySQL mode, SQL type judgment is performed, and SELECT throws an exception, consistent with MySQL JDBC. In Oracle mode, no restrictions are applied, and normal execution is allowed, consistent with Oracle JDBC.
  • When resultSetType is TYPE_FORWARD_ONLY, calling scrolling interfaces such as ResultSet.previous() and beforeFirst() will result in an exception, consistent with MySQL JDBC 8.

Non-strict compliance mode (obStrictJdbcCompatibility=false, default)

  • Does not apply the above restrictions to executeBatch, executeLargeBatch, executeUpdate, and executeLargeUpdate, allowing normal execution.
  • When resultSetType is TYPE_FORWARD_ONLY, calling scrolling interfaces such as previous() and beforeFirst() does not result in an exception.

For a detailed comparison with subsequent versions and maintenance agreements, see Behavior comparison between strict compliance mode and non-strict compliance mode in JDBC.

Bug fixes

The following are the main issues fixed in this iteration.

MySQL compatibility

  • Fixed the issue where the caching_sha2_password user could not establish an SSL connection with OceanBase JDBC and returned error 23776.
  • Fixed the issue where the return value of executeBatch and the behavior of BatchUpdateException were inconsistent with those of the native MySQL JDBC driver.
  • Fixed the issue where the rewriteBatch syntax returned an error when the table name contained on_duplicate_key_update.
  • Fixed the issue where the table comments returned by getTables were garbled when useInformationSchema=false.
  • Fixed the issue where the rs.previous() method and other scrollable interface methods did not return the correct error when the result set was not scrollable.
  • Fixed the issue where the return value of isAfterLast was inconsistent with that of the MySQL JDBC driver when the cursor result set was read to the end.
  • Fixed the issue where the compatibility of rs.isAfterLast() was affected when the cursor result set was empty.
  • Fixed the issue where the results returned by executeBatch were inconsistent when the SELECT statement used the PS protocol or the PS+ protocol.
  • Fixed the issue where the Parameter at position 19999 is not set error occurred when useBatchMultiSend=true.
  • Fixed the issue where an ArrayIndexOutOfBoundsException occurred when the batch insert size was close to but did not exceed maxPacketLength when rewriteBatchedStatements=true.

Oracle compatibility

  • Fixed the issue where OceanBase JDBC returned an error during the conn.prepareCall("? = call PKF_NAMED.j(b=>?, a=>?, c=>?)") phase, while the native Oracle driver returned an error only during execution.
  • Fixed the issue where the getObject method could not output JSON data when the JSON type was converted to BLOB in Oracle mode.
  • Fixed the issue where an exception was thrown when executeBatch was called after addBatch was executed for an SQL statement without parameters using ArrayBinding.
  • Fixed the issue where the The count of return parameter must be larger than 0 error occurred when the table name contained the returning keyword in the RETURNING INTO statement.
  • Fixed the issue where an IndexOutOfBoundsException occurred when a stored procedure with complex expressions was called using conn.prepareCall.
  • Fixed the issue where the results did not meet expectations in the PL overload scenario: when obIncludeOutOrNullParamTypeInfo was disabled during package creation and enabled during calls.

Data precision and protocols

  • Fixed the issue where precision was lost in queries from Spring applications.
  • Fixed the issue where the NUMBER(20) type data 18446744097622196224 was converted to 23912644608 after being written to OceanBase.
  • Fixed the issue where the unknown escape sequence error occurred when executing SELECT q'[select a='#{1}']' FROM dual.
  • Fixed the issue where a null pointer exception occurred when PS batch execution was performed with useOceanBaseProtocolV20=true.

Previous topic

Behavior differences between JDBC strict compatibility mode and non-strict compatibility mode
Last

Next topic

OceanBase Connector/J V2.4.17
Next
What is on this page
Version overview
New features
JDBC supports replication mode
changeUser interface supports Auth Switch
getProceduresReturnsFunctions connection parameter
Compatibility changes
URL parameter changes
Behavior of obStrictJdbcCompatibility
Bug fixes
MySQL compatibility
Oracle compatibility
Data precision and protocols