OceanBase logo

OceanBase

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

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

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

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.17

  • 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
    • 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
  • Release Notes
    • V2.4
      • 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 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 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 & Certification
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.17
iconOceanBase Connector/J
V 2.4.17
  • 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.15

Last Updated:2026-04-10 07:41:43  Updated
share
What is on this page
Version overview
New features
URL parameter changes
Bug fixes

folded

share

Release date: July 2, 2025 Version: V2.4.15

Version overview

OceanBase Connector/J V2.4.15 introduces multiple parameters to enhance MySQL and Oracle compatibility. In MySQL mode, the useLocalSessionState parameter controls whether JDBC uses locally cached session states (such as transaction mode, auto-commit status, and current database) to avoid frequent queries to OBServer. In Oracle mode, the lowercaseRoutinesInMetadata parameter controls whether the names of procedures and functions retrieved via interfaces like getProcedures and getFunctions are required to be in uppercase. Additionally, the Set/Get ClientInfo interfaces have been optimized to use local caching, reducing the need for frequent requests to OBServer and lowering database resource overhead.

New features

  • Optimized Set/Get ClientInfo interfaces to use local caching, reducing the need for frequent requests to OBServer and lowering database resource overhead.
  • MySQL tenant support:
    • Introduced the useLocalSessionState parameter to control whether JDBC uses locally cached session states (such as transaction mode, auto-commit status, and current database) to avoid frequent queries to OBServer. When the parameter value is False, queries are always sent. When the value is True and the session state has not changed, no query is sent. If the state has changed, a query is sent. In versions prior to JDBC V2.4.15, the behavior was to send a query only when the state changed, which aligns with useLocalSessionState=true. Therefore, the default value is set to True.
  • Oracle tenant support:
    • Introduced the lowercaseRoutinesInMetadata parameter to control whether the names of procedures and functions retrieved via interfaces like getProcedures and getFunctions are required to be in uppercase. The default value is True, supporting lowercase names.
    • In Oracle mode, only binary_double is a true double type. Other double types should be converted to number. Currently, the setDouble interface sends data of type double, which is indistinguishable from the setBinary_double interface. In JDBC V2.4.15, the serialization data type of the setDouble interface is changed to Number to distinguish it from setBinary_double.
    • Introduced the convertNoneNanoSecsToDate parameter to control whether a timestamp field with different precision will be converted to a Date type.

URL parameter changes

The following URL parameters have been added:

Option Name Status Default Value Description
oracleXaPrepareThrowException New false Throws an exception when the return value of dbms_xa.xa_prepare is neither 0 nor 3.
useLocalSessionState New true Controls whether the driver uses locally cached session states (such as transaction mode, auto-commit status, and current database) to avoid frequent queries to the server for these states. The default value for MySQL-JDBC is false.
convertNoneNanoSecsToDate New true In Oracle mode, whether the setTimestamp interface will convert the value to a Date type when there are no nanoseconds (nanos).
oracleUseNumberForSetDouble New false In Oracle mode, whether to serialize the type of setDouble to number.
lowercaseRoutinesInMetadata New true In Oracle mode, whether the names of procedures and functions retrieved via interfaces like getProcedures and getFunctions can be in lowercase.

Bug fixes

The following issues were fixed in this release:

  • Fixed the issue where an error was reported when connecting to the database without importing the timezone table in Oracle mode.
  • Fixed the issue where the output parameter values were incorrect when the output parameters were not registered in cross-user stored procedure calls.
  • Optimized the getcolumns interface to improve execution performance.
  • Fixed the issue where, when PS cache was enabled and cursor result sets were used, if the data from the previous request was not fully fetched, the PS would be used to re-execute and retrieve new data, leading to abnormal data states.
  • Fixed the issue where type conversion failed occasionally for nested CLOB types in arrays.
  • Fixed the issue where cursor limits were exceeded due to the failure to close pstmts created for cursor result sets when PSs were frequently created and closed.
  • Fixed the issue where, in the PS two-in-one protocol, the PS was not closed when arraybinding execution failed.
  • Fixed the issue where, when only one row of data existed in the database and the two-in-one protocol and cursor result set were used, the ResultSet.isAfterLast() method returned incorrect results.
  • Fixed the issue where the getFunctionColumns method returned incorrect results when the function comment was a single string.
  • Fixed the issue where an error was reported when data was truncated with the jdbcCompliantTruncation=false parameter.
  • Fixed the issue where an error was reported when using public synonyms across users.
  • Fixed the issue where, in MySQL mode, when rewriteBatchedStatements was set to true and the on duplicate key update statement contained \n, the getGeneratedKeys method returned incorrect results.
  • Fixed the issue where, when inserting two rows with the same values using the ON DUPLICATE KEY UPDATE statement, the executeBatch method returned incorrect results.
  • Fixed the issue where, when anonymous arrays were nested within records, the JDBC driver reported an unknown complex data type error.
  • Fixed the issue where, in MySQL mode, when useServerPrepStmts=true, the setBlob method concatenated statements incorrectly.
  • Fixed the issue where, in Oracle mode, the releaseSavepoint interface caused disconnection in HikariCP due to incompatibility between errCode and SqlState with Oracle.
  • Fixed the issue where, in Oracle mode, the registration of out parameters was not standardized, leading to incorrect result values when retrieving results.
  • Fixed the issue where, when PL returned the correct number of updated rows, the client calculated the result incorrectly.

Previous topic

OceanBase Connector/J V2.4.16
Last

Next topic

OceanBase Connector/J V2.4.14
Next
What is on this page
Version overview
New features
URL parameter changes
Bug fixes