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.4.19
  • 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.19
      • 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

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

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

Last Updated:2026-09-17 02:32:36

Parameter description
Behavior comparison table (up to V2.4.18)
References

OceanBase Connector/J supports both MySQL mode and Oracle mode and is continuously compatible with the behaviors of MySQL JDBC and Oracle JDBC. Starting from V2.4.18, you can use the URL parameter obStrictJdbcCompatibility to enable strict compatibility (true) or non-strict compatibility (false, default). This topic describes the behavior differences between the two compatibility modes to help you understand the compatibility during business migration.

The obStrictJdbcCompatibility parameter takes effect starting from V2.4.18. If the strict compatibility mode is extended in later versions, the corresponding table rows or sections will be added to this topic. For more information, see the version release notes of the corresponding version.

Parameter description

Value
Description
false (default) Non-strict compatibility: keeps the existing behaviors of OceanBase Connector/J and ensures compatibility with applications of earlier versions. It does not require strict alignment with mysql-jdbc or ojdbc.
true Strict compatibility: aligns with the behaviors of native MySQL JDBC or Oracle JDBC in the following aspects (see the table below for details).

You can set this parameter in the JDBC URL. Example: ...?obStrictJdbcCompatibility=true.

Behavior comparison table (up to V2.4.18)

The following behaviors are described under the assumption that obStrictJdbcCompatibility takes effect for V2.4.18 and later versions.

Behavior
Scenario
Strict compatibility mode (true)
Non-strict compatibility mode (false, default)
Batch execution executeBatch / executeLargeBatch If the batch contains a SELECT statement, an exception is thrown, which is consistent with the behavior of MySQL JDBC and Oracle JDBC. No restriction is imposed on the SQL types in the batch. You can execute the batch.
Update execution executeUpdate / executeLargeUpdate + MySQL mode If the statement is a SELECT statement, an exception is thrown, which is consistent with the behavior of MySQL JDBC. No restriction is imposed on the SQL types in the batch. You can execute the batch.
Update execution executeUpdate / executeLargeUpdate + Oracle mode No restriction is imposed on the SQL types in the batch. You can execute the batch, which is consistent with the behavior of Oracle JDBC. No restriction is imposed on the SQL types in the batch. You can execute the batch.
Scrollable result set ResultSet type is TYPE_FORWARD_ONLY When you call the backward or absolute positioning methods such as previous() and beforeFirst(), an exception is thrown, which is consistent with the behavior of MySQL JDBC 8. No error is returned when you call the backward or absolute positioning methods (the existing behaviors of OceanBase JDBC are retained).

Note

Strict compatibility aligns with the behaviors of native drivers on a per-behavior basis. It does not implicitly enable all MySQL or Oracle dialects or protocol options. Other URL parameters are still subject to their respective documentation.

Notice

If your application relies on the behaviors of earlier versions of Connector/J, such as allowing the use of the scrollable result set API in TYPE_FORWARD_ONLY mode or not validating SELECT statements in batch/update APIs, these behaviors are retained by default when you upgrade to V2.4.18 or later. The strict compatibility mode is only enabled when you explicitly set obStrictJdbcCompatibility=true.

References

  • Database URL
  • Release notes of OceanBase Connector/J V2.4.18

Previous topic

com.oceanbase.jdbc.ObPrepareStatement
Last

Next topic

OceanBase Connector/J V2.4.19
Next
on this page
Parameter description
Behavior comparison table (up to V2.4.18)
References