Release notes for MariaDB Connector/Java
Release Notes for MariaDB Connector/J 3.5 series
Release date: 1 Jul 2025
MariaDB Connector/J 3.5.4 is a Stable (GA) release.
Added caching option for loadCodecs results to improve performance (CONJ-1261)
Added new option cachedCodecs
Fixed incorrect type definitions in DatabaseMetaData.getTypeInfo()
(CONJ-1234)
Resolved potential race condition that could cause NullPointerException
(CONJ-1247)
avoids redundant queries for CallableStatement.getParameterMetaData()
(CONJ-1250)
Fixed SSL configuration issue where zero SSL settings only functioned without explicit SSL configuration (CONJ-1251)
Resolved GSSAPI authentication error when server exchanges begin with 0x01 byte (CONJ-1252)
Corrected DatabaseMetadata.getTypeInfo()
returning incorrect values for AUTO_INCREMENT
, FIXED_PREC_SCALE
, and CASE_SENSITIVE
fields (CONJ-1254)
Fixed getString
method on BIT(1)
fields to properly honor transformedBitIsBoolean
configuration (CONJ-1255)
Enhanced metadata compatibility with MariaDB version 12.0 (CONJ-1259)
Improved performance of DatabaseMetaData.getExportedKeys
method (CONJ-1260)
Added new option metaExportedKeys
Fixed issue to ensure correct catalog name is returned (CONJ-1256)
For a complete list of changes made in MariaDB Connector/J 3.5.4, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
Release date: 27 Mar 2025
MariaDB Connector/J 3.5.3 is a Stable (GA) release.
Resolved timestamp string representation incompatibility between versions 2.7 and 3.x (CONJ-1232) Added new option oldModeNoPrecisionTimestamp
Modified redirection option to enable by default only when SSL is enabled (CONJ-1235)
Fixed issue where dates containing zero day or month resulted in a DateTimeException (CONJ-1226)
Fixed incorrect values returned by ResultSet.getColumnType() for unsigned values (CONJ-1222)
Corrected regression in 3.x affecting column metadata for unsigned types (CONJ-1241)
Fixed CallableStatement.getParameterMetadata() returning wrong java.sql.Type for boolean values (CONJ-1243)
Prevented NPE (Null Pointer Exception) after reconnection failure in high availability configurations (CONJ-1236)
Fixed issue with incorrect statements.isClosed value after closing connection (CONJ-1237)
Disabled BULK operations when no parameters are present (CONJ-1239)
Fixed connectivity issues with databases that only accept TLSv1.3 (CONJ-1240)
For a complete list of changes made in MariaDB Connector/J 3.5.3, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 11 Feb 2025
MariaDB Connector/J 3.5.2 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1229 Permit executeQuery commands to not return a result-set
CONJ-1228 The method result-set.getObject(val) for a field of type BLOB returns an object of type Blob by default instead of the expected object of type byte[].
The following methods are not affected
resultset.getBytes(val)
resultset.getBlob(val)
resultset.getObject(val, byte[].class)
resultset.getObject(val, Blob.class) all returns expected type)
CONJ-1225 System throws an SQLTimeoutException prematurely without checking all available connections
CONJ-1221 DatabaseMetadata.getTypeInfo() is missing the data types UUID and VECTOR
CONJ-1218 Incorrect behavior where XA connections are closed when regular connections are terminated - this is against JDBC specifications
CONJ-1217 When using the parameter trustCertificateKeyStorePassword, alias for trustStorePassword, an exception is thrown
CONJ-660 The connection option disconnectOnExpiredPasswords
was not handled by the connector..It controls the client behavior when connecting with an expired password.
When set to true (default), the client disconnects if it detects an expired password.
When false, the client maintains the connection and allows setting a new password.
For a complete list of changes made in MariaDB Connector/J 3.5.2, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 20 Nov 2024
MariaDB Connector/J 3.5.1 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
The MariaDB Connector/J 3.5 release series is replacing the maintenance releases for the 3.4 release series, as the new release series is fully compatible with 3.4.
Support of the PARSEC Authentication Plugin which is provided starting with MariaDB Server 11.6. See parsec documentation for more details.
This requires java 15+ (to use java native ed25519 Algorithm implementation). For previous versions of java, this will require adding BouncyCastle as dependency.
While initially documented in 3.5.0, this feature was not in the released version.
When running a multi-master cluster (i.e. MariaDB Cluster with Galera), writing to more than one node can lead to optimistic locking errors ("deadlocks") in some use cases. Writing concurrently to multiple nodes also doesn't result in performance improvements, due to having to synchronously replicate to all nodes. The new high availability mode “Load-balance-read” permits the use of masters in a failover manner (try first master, the next one if the first master fails) while distributing the load on replicas.
Example of connection string:
jdbc:mariadb:load-balance-read://127.0.0.5,127.0.0.6,address=(host=127.0.0.7)(type=replica),address=(host=127.0.0.8)(type=replica)/DB
Equivalent of:
jdbc:mariadb:load-balance-read://address=(host=127.0.0.5)(type=primary),address=(host=127.0.0.6)(type=primary),address=(host=127.0.0.7)(type=replica),address=(host=127.0.0.8)(type=replica)/DB
In the example the hosts 127.0.0.5, 127.0.0.6 will be used for writes, in a failover manner. 127.0.0.6,127.0.0.7 are of type replica, read load balancing will be used.
Since MDEV-30366, the server can return appropriate detailed answers. This was implemented, but not for specific INSERT ON DUPLICATE KEY UPDATE commands.
CONJ-1053 waffle-jna dependency is not declared optional in the module description
CONJ-1196 setObject on java.util.Date is en/decode as java.sql.Date and truncates hour/minutes/seconds/ms while it must be en/decode like a java.sql.Timestamp
CONJ-1211 JDBC 4.3 enquoteIdentifier missing validation
An identifier containing only number must be quoted, even if alwaysQuote
parameter is set to false
Length validation must be done (< 64 characters).
CONJ-1213 SQL commands ending with semicolon and trailing space are not using bulk
For a complete list of changes made in MariaDB Connector/J 3.5.1, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 24 Oct 2024
MariaDB Connector/J 3.5.0 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
The MariaDB Connector/J 3.5 release series is replacing the maintenance releases for the 3.4 release series, as the new release series is fully compatible with 3.4.
Support of the PARSEC Authentication Plugin which is provided starting with MariaDB Server 11.6. See parsec documentation for more details.
This requires java 15+ (to use java native ed25519 Algorithm implementation). For previous versions of java, this will require adding BouncyCastle as dependency.
Those options permit the use of a specific truststore that differs from the Java default truststore. This has been added for MariaDB 2.x and MySQL connector compatibility. See documentation
connectionCollation
- CONJ-1199The Connector is using the utf8mb4 charset per default when establishing a connection. ‘connectionCollation’ can be used to define which utf8mb4 collation should be used. If not set the server default collation for utf8mb4 will be used.
Starting with MariaDB 11.4 we recommend to instead set character_set_collations
This addition is a preparation for the Vector support of MariaDB Server
Example of Array:
Array valArray = connection.createArrayOf("float", new float[] {1, 2, 3});
try (PreparedStatement prep =
connection.prepareStatement("INSERT INTO BinaryCodec(t0, t1) VALUES (?, ?, ?)")) {
prep.setInt(1, 1);
prep.setArray(2, valArray);
prep.setObject(3, new float[] {4, 5, 6});
prep.execute();
}
Resultset:
Array resArray = rs.getArray(2);
float[] res = rs.getObject(2, float[].class);
CONJ-1202 A change of the collation via a session variable might be ignored
CONJ-1201 Incorrect default behavior for forceConnectionTimeZoneToSession
NOTE: If client and server use different time zones and no timezone options where used, MariaDB Connector/J 3.4 introduces a change which is forcing client timezone to the session. This behavior is an not intended incompatibility change compared to MariaDB Connector/J 3.3, which is corrected in MariaDB Connector/J 3.5 with this change
CONJ-1200 Batch import fails with exception "Unknown command"
CONJ-1187 Throw exception type SQLTimeoutException instead of SQLNonTransientConnectionException for connection timeouts
For a complete list of changes made in MariaDB Connector/J 3.5.0, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
Release Notes for MariaDB Connector/J 3.4 series
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 27 Mar 2025
MariaDB Connector/J 3.4.2 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1237: Fixed issue with incorrect statements.isClosed value after closing connection
CONJ-1236: Prevented NPE (Null Pointer Exception) after reconnection failure in high availability configurations
CONJ-1239: Disabled BULK operations when no parameters are present
For a complete list of changes made in MariaDB Connector/J 3.4.2, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 17 Jul 2024
MariaDB Connector/J 3.4.1 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
For CONJ-1189
The new boolean option pinGlobalTxToPhysicalConnection
, when enabled, ensures that an operation for a specific XID is routed to the same connection, to permit supporting XA START <xid>
when XA END has been called.
This prevent errors like
XA resource 'xaDataSource': resume for XID 'XID: <some id>' raised -5: invalid arguments were given for the XA operation
The host description for connecting to the server has been changed from either <host>[:<portnumber>]
or address=(host=<host>)[(port=<portnumber>)][(type=(master|slave))]
to a more detaild host description, permitting to set localsocket or pipe, and to define a specific ssl mode depending on the host. New format:
address=(host=<host>|localSocket=<socket>|pipe=<namedpipe>)[(port=<portnumber>)][(type=(master|slave))][(sslMode=disable|trust|verify-ca|verify-full)]
Example:
jdbc:mariadb:sequential://address=(localSocket=/socket),address=(host=10.0.0.1)(port=3306)(sslMode=verify-full)/DB
This connection string now permits to use a local unix socket if available, and host 10.0.0.1 with ssl if the unix socket is not available. A detailed host description option supersedes a global option description. The previous example can also be written in the following way, defining different ssl modes for both host options:
jdbc:mariadb:sequential://address=(localSocket=/socket)(sslMode=disable),10.0.0.1:3306/DB?sslMode=verify-full
For CONJ-1190
Option useCatalogTerm
has an alias databaseTerm
for MySQL connector compatibility.
CONJ-1181 The validation of a statement of the cache for prepared statements is not taking the use of different schemas into account, which can result in unexpected behavior when the same statement is executed on different schemas.
CONJ-1178 DatabaseMetaData.getImportedKeys returns a different PK_NAME value than DatabaseMetaData.getExportedKeys when using a NON UNIQUE constraint.
CONJ-1180 Slow performance of function DatabaseMeta.getExportedKeys()
CONJ-1185 Android app incompatibility, regex CANON_EQ flag is not supported on Android OS
CONJ-1188 Database meta getSQLKeywords is listing all reserved keywords, not only the restricted keywords
CONJ-1191 The Function metadata getImportedKeys is slow when a database has not been set
CONJ-1068 The Function ResultSetMetaData.getColumnTypeName() returns type VARCHAR instead of type TINYTEXT for columns of type TINYTEXT
CONJ-1182 Missing error mapping for errors XA_RBTIMEOUT, XA_RBTIMEOUT and XA_RBDEADLOCK
For a complete list of changes made in MariaDB Connector/J 3.4.1, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 17 May 2024
MariaDB Connector/J 3.4.0 is a Stable (GA) release, and replaces 3.3 as the maintenance releases.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
Using SSL (a more correct term would be TLS, but in reality SSL is more commonly used) has been simplified with MariaDB Server 11.4. Before version 11.4, proper SSL configuration required multiple manual steps for the server and all the clients connecting to it.
For MariaDB Connector/J before 3.4 to establish an SSL encrypted connection, or a MariaDB Server release series previous to 11.4, three options can be used:
Have server certificates generated with trusted Certificate Authorities (CA), using a configuration like: sslMode=verify-full
Configure the connector using a server certificate, like: sslMode=verify-full&serverSslCert=file:///server-cert.pem
Disable the verification of the SSL certificate, which is insecure and not recommended, using a configuration like: sslMode=trust
For MariaDB Connector/J 3.4 to establish an SSL encrypted connection to MariaDB Server 11.4, enabling SSL does not require any special configuration apart from using sslMode=verify-full. The connector doesn't need to know the server certificate anymore, as long as the password is not empty.
The MariaDB Connector/J versions before 3.4 provide a single "timezone" option for working with different time zones for clients and servers. While this functionality remains compatible, it's now separated into two distinct settings:
connectionTimeZone
forceConnectionTimeZoneToSession
There are now 3 options that control timestamps behavior in the java connector:
connectionTimeZone: (LOCAL | SERVER | ) This option defines the connection's time zone. LOCAL retrieves the JVM's default time zone, SERVER fetches the server's global time zone upon connection creation, and allows specifying a server time zone without requesting it during connection establishment.
forceConnectionTimeZoneToSession: (true | false) This setting dictates whether the connector enforces the connection time zone for the session.
preserveInstants: (true | false) This option controls whether the connector converts Timestamp values to the connection's time zone.
While remaining compatible with previous versions, this permits more flexibility when handling timezone difference scenarios. See timezone documentation for detailed information.
Since MariaDB 10.3.1, the server has a new system variable redirect_url to provide a connection string using the forma mariadb/mysql://[<user>[:<password>]@]<host>[:<port>]/[<db>[?<opt1>=<value1>[&<opt2>=<value2>]]]
.
When set, all existing connections will be redirected to the designated URL values when appropriate. A connection will only be redirected when no transaction is active.
Example for enabling the redirection:set @@global.redirect_url="mariadb://somehost:3306/"
The redirection feature is enabled by default. It can be disabled by setting the new option permitRedirect to FALSE, which will result in ignoring the redirection URL.
When session tracking is supported by the MariaDB Server release series, Connection.getTransactionIsolation() won’t query the server as the current state is already known from the session tracking information. Connection.setTransactionIsolation will skip the query to set the transaction isolation level if the server is already using the requested transaction isolation level.
CONJ-1103 Connector/J Version 3 Does Not Respect "nullCatalogMeansCurrent" Property
CONJ-1161 Database connection failing on android
CONJ-1107 MariaDB Connector 3 no longer supports query timeout with MySQL
CONJ-1125 Inconsistency in Handling PreparedStatement.executeQuery() between MariaDB and MySQL Connectors
CONJ-1156 getTables should be ordered as expected
CONJ-1163 jdbcCompliantTruncation Does Not Appear To Be Working
CONJ-1164 Variable initialization ahead of LOAD DATA INFILE not possible by validateLocalFileName pattern
CONJ-1168 useBulkStmts compatibility value with pre 3.2 version
CONJ-1169 improve Client prepared statement setMaxRows implementation
CONJ-1170 OFFSET missing from getSQLKeywords
CONJ-1158 DatabaseMetaData#getFunctions's result not property ordered
CONJ-1159 DatabaseMetaData#getClientInfoProperties not ordered correctly
CONJ-1166 Implement connection properties fallbackToSystemKeyStore and fallbackToSystemTrustStore
CONJ-1173 Bulk implementation returning individual results
CONJ-1174 ConnectorJ gives precision of 20 for signed bigint
CONJ-1100 Be able to filter system tables and views
For a complete list of changes made in MariaDB Connector/J 3.4.0, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
Release Notes for MariaDB Connector/J 3.3 series
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 27 Mar 2025
MariaDB Connector/J 3.3.4 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1237: Fixed issue with incorrect statements.isClosed value after closing connection
CONJ-1236: Prevented NPE (Null Pointer Exception) after reconnection failure in high availability configurations
CONJ-1239: Disabled BULK operations when no parameters are present
For a complete list of changes made in MariaDB Connector/J 3.3.4, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 20 Feb 2024
MariaDB Connector/J 3.3.3 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1050 regression: nonparameterized batch fails
CONJ-1150 Error using PrepareStatement.setURL with null url
CONJ-1152 Improve message when reaching socket timeout during connection initial commands
For a complete list of changes made in MariaDB Connector/J 3.3.3, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 19 Dec 2023
MariaDB Connector/J 3.3.2 is a Stable (GA) release, and will replace 3.2 as the maintenance releases.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1117 new option returnMultiValuesGeneratedIds
for connector 2.x compatibility, so getGeneratedKeys() return all ids of multi-value inserts
CONJ-1140 regression caussing ClassCastException on DatabaseMetaData when use with option defaultFetchSize set
CONJ-1129 Metadata.getPrimaryKeys table comparison using like in place of strict equality
CONJ-1130 ensuring batch parameter are cleared after SQL Failure
CONJ-1131 NullPointerException when Calling getGeneratedKeys() after an SQL Failure
CONJ-1132 Ensuring reseting result for getUpdateCount() after an SQL Failure
CONJ-1135 ensuring BULK command not used when using INSERT ON DUPLICATE KEY UPDATE in order to always have unique affected rows by default
CONJ-1136 wrong decoding for Resultset.getByte() results for binary varchar fields
CONJ-1137 ensuring never having NPE in OkPacket when setting auto commit
CONJ-1138 Inconsistency in Behavior of PreparedStatement After closeOnCompletion() Between MariaDB and MySQL Connectors
CONJ-1049 Metadata getTableTypes result was not ordered by TABLE_TYPE
For a complete list of changes made in MariaDB Connector/J 3.3.2, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 29 Nov 2023
MariaDB Connector/J 3.3.1 is a Stable (GA) release, and will replace 3.2 as the maintenance releases.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1120 java 8 compatibility error in 3.3.0
CONJ-1123 missing OSGi javax.crypto dependency
CONJ-1124 ensure not having OOM when setting huge fetch size
CONJ-1109 Regression in clearBatch() for parameterized statements
CONJ-1126 setting fetchSize directly on a ResultSet object does not reflect the expected change
CONJ-1127 Statement.getResultSetType () failed to change the result set type
CONJ-1128 Setting Negative Fetch Size on ResultSet Without Throwing Error
For a complete list of changes made in MariaDB Connector/J 3.3.1, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 08 Nov 2023
MariaDB Connector/J 3.3.0 is a Stable (GA) release, and will replace 3.2 as the maintenance releases.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1115 Make connector become more virtual-thread friendly
CONJ-1108 Database metadata listing TEMPORARY tables/sequences
CONJ-1113 update ed25519 to recent version
CONJ-1116 Avoid unnecessary synchronization on calendar when no calendar parameter
CONJ-1102 BatchUpdateException.getUpdateCounts() returns SUCCESS_NO_INFO but expects EXECUTE_FAILED
For a complete list of changes made in MariaDB Connector/J 3.3.0, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
Release Notes for MariaDB Connector/J 3.2 series
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 25 Aug 2023
MariaDB Connector/J 3.2.0 is a Stable (GA) release. It is replacing 3.1 as the maintenance releases.
This is the last release of the 3.2 release series as the release series 3.3 is compatible and is therefore replacing 3.2 as the maintenance releases.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
Bulk batching enabled by default (option useBulkStmts
) with permit super fast batching, but batch return array of update counts with Statement.SUCCESS_NO_INFO values.
The problem is that application using optimistic locking fails, expecting exact return value.
useBulkStmts
is now defaulting to false, with the addition of a new option useBulkStmtsForInserts
, enabled by default permit to enable bulk for insert command only. This permit to have return values in batching return value, for all cases, permitting optimistic behavior.
This default values are more appropriate for all kind of application. If application doesn't use optimistic locking, enabling useBulkStmts
is then more appropriate, because UPDATE and DELETE commands in batch will then use faster BULK implementation.
When using maxscale 23.08.0+, when a maxscale node fails, connector will now priorize reconnection to the maxscales nodes having less connections, to ensure connections repartition after failover. This allows a faster return to normal
CONJ-1088 Implement databaseTerm
option for mysql compatibility
CONJ-1096 adding option useLocalSessionState
to permit avoiding queries when application only use JDBC methods.
CONJ-1075 LOAD DATA INFILE is broken on windows
CONJ-1079 getGeneratedKeys after batch will not return all generated id's if first batch command return no generated id.
CONJ-1080 maridb Java connector sslMode=verify-ca complaining unable to find trust certificate.
CONJ-1082 Multiple session system variables parsing fails
CONJ-1083 Using /client prepare/ prefix to force client side prepared statement
CONJ-1091 can't make a connection when the Read Replica DB is in a hang state when SocketTimeout=0 set
CONJ-1092 ensure respecting server collation
CONJ-1094 Missing mariadb/mysql collation
For a complete list of changes made in MariaDB Connector/J 3.2.0, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
Release Notes for the MariaDB Connector/J 3.1 series
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 1 May 2023
MariaDB Connector/J 3.1.4 is a Stable (GA) release.
This is the last release of the 3.1 release series as the release series 3.2 is compatible and is therefore replacing 3.1 as the maintenance releases.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1065 wrong Resultset.wasNull() for zero-date timestamps
CONJ-1070 getBlob on TEXT columns throw Exception
CONJ-1071 Error response during Bulk execution might result in connection wrong state
CONJ-1067 When some numeric data types are set to UNSIGNED, ResultSetMetaData.getColumnTypeName() does not return UNSIGNED
For a complete list of changes made in MariaDB Connector/J 3.1.4, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 22 Mar 2023
MariaDB Connector/J 3.1.3 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1054 Threadsafety issue when using CredentialPlugin in v3.x
CONJ-1056 JDBC connector reads incorrect data from unix socket when reading packet size > 32K
CONJ-1057 Wrong decoding of binary time with value "00:00:00"
CONJ-1058 JDBC 4.3 org.mariadb.jdbc.Statement enquote* methods implementation. thanks to @peterhalicky
CONJ-1060 BIT default metadata doesn't take care of transformedBitIsBoolean option
For a complete list of changes made in MariaDB Connector/J 3.1.3, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 24 Jan 2023
MariaDB Connector/J 3.1.2 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1042 fix DatabaseMetaData.getColumns() on old server version (< MySQL 5.6.4 and < MariaDB 5.3.0)
CONJ-1040 possible ConcurrentModificationException when parsing properties when connecting
CONJ-1041 possible ArrayIndexOutOfBoundsException when writing a parameter to socket pre-buffer when pre-buffer is exactly 16M
For a complete list of changes made in MariaDB Connector/J 3.1.2, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 11 Jan 2023
MariaDB Connector/J 3.1.1 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1036 org.mariadb.jdbc.client.socket.impl.PacketWriter.writeAscii() broken in 3.1.0
For a complete list of changes made in MariaDB Connector/J 3.1.1, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 15 Nov 2022
MariaDB Connector/J 3.1.0 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
Other than features, connector permit significant performance improvements, reaching the same level of performance than c connector
Most significant change are :
CONJ-1009 improve performance reading big result-set
CONJ-1014 avoid creating array when receiving server packet
CONJ-1015 pipelining sent (PREPARE+EXECUTE) are now sent into a single buffer, permitting in some case to have only one TCP-IP packet for 2 mysql packet.
Benchmark using JMH one a single 4 core ubuntu 22.04 server (AWS c5.xlarge) shows :
simple resultset command : "Select 1"
@Benchmark
public int run(MyState state) throws Throwable {
try (Statement st = state.connectionText.createStatement()) {
ResultSet rs = st.executeQuery("select 1");
rs.next();
return rs.getInt(1);
}
}
Client side prepared statement parsing : "DO 1000 parameters"
private static final String sql;
static {
StringBuilder sb = new StringBuilder("do ?");
for (int i = 1; i < 1000; i++) {
sb.append(",?");
}
sql = sb.toString();
}
@Benchmark
public int text(MyState state) throws Throwable {
try (PreparedStatement st = state.connectionText.prepareStatement(sql)) {
for (int i = 1; i <= 1000; i++) {
st.setInt(i, i);
}
return st.executeUpdate();
}
}
resultset with lots of columns : ""select 1 row from a 100 int columns"
@Benchmark
public int[] text(MyState state) throws Throwable {
try (PreparedStatement prep = state.connectionText.prepareStatement("select * FROM test100")) {
ResultSet rs = prep.executeQuery();
rs.next();
int[] objs = new int[100];
for (int i = 0; i < 100; i++) {
objs[i] = rs.getInt(i + 1);
}
return objs;
}
}
Since MariaDB server 10.7, a new UUID data format is supported. getter and setter can now pass java.util.UUID parameter (i.e. PrepareStatement setObject(index, ) / Resultset getObject(index, UUID.class) )
Resultset.getObject without class or type precision will now return UUID object for UUID fields by default
UUID metadata
Metadata for UUID fields will now return ResultSetMetaData.getColumnTypeName(index) => "uuid" ResultSetMetaData.getColumnClassName(index) => "java.util.UUID" ResultSetMetaData.getColumnType(index) => Types.OTHER
replacing :
ResultSetMetaData.getColumnTypeName(index) => "CHAR" ResultSetMetaData.getColumnClassName(index) => "java.lang.String" ResultSetMetaData.getColumnType(index) => Types.CHAR
For compatibility, a new option uuidAsString
permit to consider UUID as String like previously.
CONJ-992 load balance hosts are now chosen using ROUND ROBIN in place of RANDOM
CONJ-1008 default value for socket option useReadAheadInput change to false.
For a complete list of changes made in MariaDB Connector/J 3.1.0, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
Release Notes for the MariaDB Connector/J 3.0 series
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 25 Aug 2023
MariaDB Connector/J 3.0.11 is a Stable (GA) release.
This is the last release of the 3.0 release series as the release series 3.1 is compatible and is therefore replacing 3.0 as the maintenance releases.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1089 correcting 3.0.10 incompatibility with java 8
For a complete list of changes made in MariaDB Connector/J 3.0.11, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 11 Jan 2023
MariaDB Connector/J 3.0.10 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1023 Connector/J doesn't set SSL cap bit in Handshake Response Packet
CONJ-1026 timezone=auto option failure on non-fixed-offset zone machine
CONJ-1032 Compatibility for deprecated arguments is case sensitive now
For a complete list of changes made in MariaDB Connector/J 3.0.10, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 08 Nov 2022
MariaDB Connector/J 3.0.9 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
merge from 2.7.7 : CONJ-1016 avoid splitting BULK command into multiple commands in case of prepareStatement.setNull() use
merge from 2.7.7 : CONJ-1021 GSSAPI authentication might result in connection reset
merge from 2.7.7 : CONJ-1019 DatabaseMetaData.getImportedKeys should return real value for PK_NAME column
CONJ-1012 stored procedure register output parameter as null if set before registerOutParameter command
CONJ-1017 Calendar possible race condition, cause wrong timestamp setting
For a complete list of changes made in MariaDB Connector/J 3.0.9, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 20 Sep 2022
MariaDB Connector/J 3.0.8 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1010 improve client side prepared parameter substitution
CONJ-997 regression in 3.x when using option galeraAllowedState resulting in an IndexOutOfBoundsException
CONJ-1002 2nd failover reconnection ignores default database/schema setting when not set by connection string
CONJ-1003 replication configuration always use 1st replica on 3.0
CONJ-996 BatchUpdateException doesn't inherited the SQLState & vendorCode from the cause SQL exception
CONJ-1006 disabling cachePrepStmts with useServerPrepStmts might result in Exception
CONJ-1007 Socket file descriptors are leaked after connecting with unix socket if DB is not up running
CONJ-999 setting createDatabaseIfNotExist option use on read-only server will refuse connection on 3.0
For a complete list of changes made in MariaDB Connector/J 3.0.8, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 4 Aug 2022
MariaDB Connector/J 3.0.7 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-993 SQLDataException reading DATA_TYPE on DatabaseMetaData.getTypeInfo() after 3.0.4
CONJ-986 Permit specific Statement.setLocalInfileInputStream for compatibility
CONJ-987 Version 3.0.0 returns String for VARBINARY instead of byte[] as 2.7.6 did
CONJ-989 Binary column read as String
CONJ-990 Setting timezone=UTC result in SQLSyntaxErrorException
CONJ-991 Regression: binary(16) is returned as String by getObject()
CONJ-994 Version 3.x rejects previously accepted boolean string parameter for BOOLEAN field
For a complete list of changes made in MariaDB Connector/J 3.0.7, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 29 Jun 2022
MariaDB Connector/J 3.0.6 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-984 Permit executing initial command with new option initSql
CONJ-976 Improve use of pipelining when allowLocalInfile is enabled
CONJ-985 ResultSet.getObject() returns ByteSet instead of Byte[] for BIT
CONJ-953 PreparedStatement.getGeneratedKeys() returns rows when no keys are generated in insert
CONJ-975 ArrayIndexOutOfBoundsException when attempt to getTime() from ResultSet
CONJ-979 ResultSet.getObject() returns Byte instead of Boolean for tinyint(1)
CONJ-980 Permit setObject with java.util.Date parameter
For a complete list of changes made in MariaDB Connector/J 3.0.6, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 25 May 2022
MariaDB Connector/J 3.0.5 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-958 When multiple hosts are defined in the connection URL and no failover or load balancing mode is used, MariaDB Connector/J will try the hosts sequentially until a connection is successful.
CONJ-961 LOAD DATA LOCAL INFILE is now enabled by default on the client side, for compatibility with MariaDB Connector/J 2.7.
The connector validates that only the filename used in the original request will be provided, to prevent a man-in-the-middle change of the filename.
This might cause Batch performance regression. In case of non use of LOCAL DATA LOCAL INFILE, disable option allowLocalInfile
explicitly can improve performance.
CONJ-956 ArrayIndexOutOfBoundsException when alias length > 250
CONJ-947 value after milliseconds precision lost when timestamp is encoded
CONJ-949 keep clientCertificateKeyStoreUrl and clientCertificateKeyStoreUrl aliases
CONJ-950 metadata TEXT/TINYTEXT/MEDIUMTEXT/LONGTEXT wrong column type and length
CONJ-954 java.time.OffsetDateTime not supported
CONJ-958 compatibility with 2.7: now loop through hosts when multiple host without failover mode
CONJ-959 java.time.Instant not supported
CONJ-962 resultset for negative TIME value return erronous LocalDateTime values
CONJ-965 better error message when not loading serverSslCert file
CONJ-967 clearParameters() breaks validity when using output parameters in stored procedures
CONJ-969 org.mariadb.jdbc.ClientPreparedStatement is missing a toString implementation, useful for logging
For a complete list of changes made in MariaDB Connector/J 3.0.5, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 25 Mar 2022
MariaDB Connector/J 3.0.4 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-921 DatabaseMetadata#getTables throws a syntax error if a NULL value is used for tableNamePattern
CONJ-922 A DECIMAL overflow for long/int/short is not throwing an exception
CONJ-924 A NULL value returned for a column can result in java.lang.IllegalArgumentException: Unexpected data type NULL
CONJ-926 The authentication is restricted to the methods 'mysql_native_password,client_ed25519,auth_gssapi_client' instead of allowing all supported methods, if the option restrictedAuth is not set (default NULL).
CONJ-923 32 bit value returned instead of a 64 bit value for generated id / updated rows
CONJ-933 When the load-balancing HA mode is used a host is not used anymore after a connection failed, even if a connection would be possible again.
CONJ-935 Connection.getMetaData() returns values of type MariaDbClob instead of the expected type String
CONJ-937 metadata.getColumnTypeName() returns the values with a wrong types
CONJ-934 A connection fails if the password is set before the username for MariaDbDataSource
CONJ-932 The login packet has non-standard length information for the attributes, which can result in issues when using wireshark.
CONJ-945 When using failover the definition of retriesAllDown is ignored when trying to reconnect
CONJ-940 Updates of rows is not possible for storage engines which do not provide the metadata information for primary columns
CONJ-925 missing OSGI metadata is missing
For a complete list of changes made in MariaDB Connector/J 3.0.4, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 25 Jan 2022
MariaDB Connector/J 3.0.3 is a Stable (GA) release.
NOTE: MariaDB Connector/J 3.0.3 is NOT fully compatible with the latest release of version 2.7.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
New version 3.0 is a complete rewrite of the connector, with code simplification, reduced size (15%), more than 90% coverage tested, with performance gain.
Licence is still LGPL-2.1 or later with copyright to MariaDB Corporation AB only (2.x was a fork from Drizzle-JDBC - BSD licensed)
What’s new :
Binary prepare statement improvement
faster connection creation
Support of new 10.6 metadata skip
Pipelining PREPARE
REDO failover transaction
Better java version support
New option tcpKeepIdle
, tcpKeepCount
, tcpKeepInterval
for java 11+
Provide a full JPMS module descriptor
new option restrictedAuth
to permit authentication plugin restriction
metadata queries performance improvement
Easy logging
Deprecated option removal
Support codec registry implementation
Other than features, connector permit significant performance improvements : Here are real world TPCC benchmarks results, comparing connector version 2.7.4 and 3.0.3
When using option useServerPrepStmts
, the connector uses BINARY protocol, meaning executing PREPARE + EXECUTE commands.
Queries issued from the application are sent one by one to the server, waiting on the results of the first query before sending the next. Communication with the server follows this synchronous request-response messaging pattern.
When using binary protocol, a PREPARE command is issued (if not in cache) before executing an EXECUTE command.
For MariaDB server 10.2+, the connector will send an optimistic PREPARE + EXECUTE, sending queries one after another. EXECUTE command will be executed only if the PREPARE command succeeds. This avoids some network latency reading PREPARE result before sending EXECUTE command.
10.6 Server with MDEV-19237 permit to avoid resending metadata when they haven’t changed.
This concerns SQL commands that return a resultset, when using option useServerPrepStmts
.
Now, the server will send metadata only if they have changed (DDL change for example). This avoids useless information transiting on the network and parsing those metadata.
Connector internal JMH Benchmark results, selecting one row of a 100 int column table :
Connection creation by default won't execute additional command to set session environement. Depending on options, there might be a few commands, but driver avoid them to the maximum.
After a failover occurs, reconnection will be automatically done according to high-availability configuration. Even if implementation is now smaller and clearer, the result will be the same.
After reconnection, the connector might still throw an exception if the state is unsure. Failover on replica are transparent. This is different when the failover occurs during the execution of a query on a master server.
A new option transactionReplay
permit to replay transactions :
Most of the time, queries occur in transactions so redo transaction implementation will solve most of the failover cases transparently. Option is disabled by default. When enabled, all queries in a transaction are cached until transaction resolution.
If a failover occurs, the driver will recreate a new connection and replay cache.
There is a few limitations:
When the last command was a "commit" sent to the server, an exception will be thrown, the driver cannot know the current state.
application must have idempotent queries only (queries can be "replayable")
If the transaction is too big (cache size limit set with new option transactionReplaySize
), the driver won’t cache the transaction anymore, so a failover during that specific transaction will result in throwing an exception.
Driver uses Multi-Release JARs (MRJAR), to simultaneously contain implementations for different versions of java. This permit still supports Java 8, but provides solutions for higher versions of java.
Connector now provides a java 9 full module-info JPMS descriptor
Java 11 socket extended option TCP_KEEPIDLE, TCP_KEEPCOUNT and TCP_KEEPINTERVAL are now configurable with tcpKeepIdle
, tcpKeepCount
, tcpKeepInterval
options respectively. (These options don't have any effect if using a java version lower than 11).
A new option restrictedAuth
permits to restrict authentication plugins.
Example connection string jdbc:mariadb:*localhost/db?restrictedAuth=mysql_native_password,client_ed25519
will restrict plugin use of standard mysql_native_password and client_ed25519 only.*
Metadata queries use of information_schema improvement for partial or exact matching, permitting faster results.
Logging can now be easily enabled at runtime, using slf4j if present, or fallback to JDK logger / console if not.
INFO level log connection error
DEBUG/FINE level log commands
TRACE/FINEST level log network exchanges
It occurs that mysql AND mariadb driver are sometimes available in the same classpath,
so, now, driver only accept jdbc:mariadb:
by default.
If for some reason, connection string is required to be jdbc:mysql:
Driver will be used only if connection string contain 'permitMysqlScheme'.
example :jdbc:mysql:*localhost/test?permitMysqlScheme
.*
Ssl configuration use now a new option sslMode
to simplify configuration
Possible value are :
disable
No ssl (default)
trust
Encryption only (no certificate and hostname validation) (DEVELOPMENT ONLY)
verify-ca
Encryption, certificates validation, BUT no hostname verification
verify-full
Standard SSL use: Encryption, certificate validation and hostname validation
This can still be done by 2.x options (useSsl, disableSslHostnameVerification, trustServerCertificate) for compatibility, but this is the preferred way.
A new option timezone
permits to force session timezone in case of client having a different timezone compare to server. if set timezone must to either offset or IANA tz (like '+5:00' or 'America/New_York')': connector will set connection timezone. This replace options useLegacyDatetimeCode
and serverTimezone
that did cause some problems when using some functions that are affected by the time zone setting.
Even if connectors aim to be compatible with the 2.x version, there has been very few option removal since connection exists. This is now the time :
allowMasterDownConnection
In master/replica setup, master must be up
assureReadOnly
connectors now configure replica connection being read-only
autoReconnect
doesn’t have any sense now, better use high availability mode
cachePrepStmts
always cache when using binary protocol
callableStmtCacheSize
always cache when using binary protocol
continueBatchOnError
enablePacketDebug
log are now set using standard logger
ensureSocketState
removed, this was a debugging option
failOnReadOnly
one master must always be present when using master/replica setup
failoverLoopRetries
failover number of attempts rely now only on retriesAllDown option
jdbcCompliantTruncation
The connector ensures STRICT_TRANS_TABLES is always set to follow JDBC expected truncation.
keyPassword
loadBalanceBlacklistTimeout
denied lists are handled automatically, and if all servers are denied, the connector will reconnect using the denied servers. No need for these options anymore.
log
log are now set using standard logger
maximizeMysqlCompatibility
very old option for old mysql connector compatibility
nullCatalogMeansCurrent
was to permit non JDBC behavior for compatibility with old version correction
passwordCharacterEncoding
pinGlobalTxToPhysicalConnection
prepStmtCacheSqlLimit
forced to 8K value
profileSql
log are now set using standard logger
retriesAllDown
not compatible with new failover implementation
rewriteBatchedStatements
replaced by use of faster batching implementation ( COM_STMT_BULK)
serverTimezone
sharedMemory
plugin removed
slowQueryThresholdNanos
staticGlobal
tcpNoDelay
Who would want to disable NAGLE to have a slow connector
tcpRcvBuf
tcpSndBuf
trackSchema
Automatically set
trustStore
Use java standard truststore or option serverSslCert to provide certificates.
trustStorePassword
Same than trustStore
trustStoreType
Same than trustStore
useBatchMultiSend
replaced by use of faster batching implementation ( COM_STMT_BULK)
useBatchMultiSendNumber
See useBatchMultiSend
useFractionalSeconds
server are expected to support fractional seconds (all mariadb server support it, mysql since 5.6)
useLegacyDatetimeCode
useOldAliasMetadataBehavior
was to permit non JDBC behavior for compatibility with old version correction
validConnectionTimeout
No automatic validation done by connector, pool must validate connection, not connector having a thread for that
Specific support for aurora has been removed, since Issues were piling up without the community proposing any PR for them and without access for us to test those modifications.
For a complete list of changes made in MariaDB Connector/J 3.0.3, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 16 Sep 2021
MariaDB Connector/J 3.0.2 is a Release Candidate (RC) release.
Do not use non-stable (non-GA) releases in production!
NOTE: MariaDB Connector/J 3.0.2 is fully compatible with the latest release of version 2.7. Further maintenance releases will not be provided for version 2.7 after MariaDB Connector/J 3.0 becomes stable (GA).
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
See mariadb-connector-j-300-release-notes.md and mariadb-connector-j-301-release-notes.md for 3.0 release. with the following changes:
CONJ-879 Java 9 module full support ( Aws IAM credential now use sdk v2 authentication to permit use of modules)
CONJ-897 Ensure having connection's thread id in Exception / debug logs
CONJ-896 Ensure pool connections validation when a socket fail
For a complete list of changes made in MariaDB Connector/J 3.0.2, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 11 Aug 2021
MariaDB Connector/J 3.0.1 is a Beta (Beta) release.
Do not use beta releases in production!
NOTE: MariaDB Connector/J 3.0.1 is fully compatible with the latest release of version 2.7. Further maintenance releases will not be provided for version 2.7 after MariaDB Connector/J 3.0 becomes stable (GA).
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
See mariadb-connector-j-300-release-notes.md for 3.0 release. with the following fixes :
CONJ-879 Provide JPMS module descriptor
CONJ-880 metadata query performance correction
CONJ-884 MariaDbPoolDataSource leaks connections when the mariadb server restarts
CONJ-885 org.mariadb.jdbc.internal.util.pool.Pool swallows SQLException during addConnection
CONJ-891 getImportedKeys with null catalog restrict result to current database
CONJ-894 Adding useMysqlMetadata for 2.7 compatibility
For a complete list of changes made in MariaDB Connector/J 3.0.1, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 04 May 2021
MariaDB Connector/J 3.0.0 is a Alpha (Alpha) release.
Do not use alpha releases in production!
NOTE: MariaDB Connector/J 3.0.0 is fully compatible with the latest release of version 2.7. Further maintenance releases will not be provided for version 2.7 after MariaDB Connector/J 3.0 becomes stable (GA).
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
This version is a complete rewrite of the Java driver. The goal being to have a more performant, easy to read, extendable, small driver.
Complete rewrite, code simplification / clarification, reduced size (15%), more than 90% coverage tested.
Performance Improvements:
Prepare and execution are now using pipelining when using option useServerPrepStmts
Performance enhancement with MariaDB 10.6 server when using option useServerPrepStmts
, skipping metadata (see MDEV-19237)
New Options :
The options useSsl
, trustServerCertificate
, and disableSslHostnameVerification
still exist, but sslMode
allows for easier configuration.
If using slf4j
, just enable the package "org.mariadb.jdbc" log.
Level ERROR
will log connection errors
Level WARNING
will log query errors
Level DEBUG
will log queries
Level TRACE
will log all exchanges with server
If not using slf4j
, console logging will be used.
If you really want to use the JDK logger, the System property
"mariadb.logging.fallback
" set to JDK
will indicate to use common
logging.
The Failover implementation now permits redoing transactions : when creating a transaction, all commands will be cached, and can be replayed in case of failover.
This functionality can be enabled using the option transactionReplay
.
This is not enabled by default, because it requires that the application avoid using non-idempotent commands.
Example:
START TRANSACTION;
SELECT next_val(hibernate_sequence);
INSERT INTO myCar(id, name) VALUE (?, ?) //WITH parameters: 1, 'car1'
INSERT INTO myCarDetail(id, carId, name) VALUE (?, ?, ?) //WITH parameters: 2, 1, 'detail1'
INSERT INTO myCarDetail(id, carId, name) VALUE (?, ?, ?) //WITH parameters: 3, 2, 'detail2'
COMMIT;
Equivalent options are tcpKeepIdle
, tcpKeepCount
, tcpKeepInterval
Because these are available only with Java 11, setting these options with java < 11 will have no effect.
New Options :
example setting restrictedAuth
to "mysql_native_password,client_ed25519,auth_gssapi_client", only those plugins can be use. If server return ask for an authentication plugin not listed in restrictedAuth
, driver will throw an exception.
The driver is built with a Service Provider Interface (SPI), permitting easy ways to extend the driver.
Possible extensions:
org.mariadb.jdbc.codec.Codec
: Allows encoding/decoding types
org.mariadb.jdbc.plugin.authentication.AuthenticationPlugin
: Allows authentication plugin additions. Defaults are "mysql_clear_password", "auth_gssapi_client", "client_ed25519", "mysql_native_password", "dialog" (PAM), and "caching_sha2_password"
org.mariadb.jdbc.plugin.credential.CredentialPlugin
: Allows login/password retrieval. Defaults are "AwsIamCredentialPlugin" to permit retrieve a temporary IAM authentication, "EnvCredentialPlugin" to get environment authentication, and "PropertiesCredentialPlugin" to get authentication info from java property
org.mariadb.jdbc.plugin.tls.TlsSocketPlugin
: Allows extended TLS implementation
CONJ-864 - includeThreadDumpInDeadlockExceptions
always includes the thread dump, even when it is not a deadlock exception
CONJ-858 - Properties parameters that differ from string not taken in account
For a complete list of changes made in MariaDB Connector/J 3.0.0, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
Release Notes for the MariaDB Connector/J 2.7 series
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 20 Feb 2024
MariaDB Connector/J 2.7.12 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1145 Wrong sequence number of sub header with compressing procotol active
CONJ-1151 Wrong debug trace when using compression protocol
CONJ-1152 Improve message when reaching socket timeout during connection initial commands
CONJ-1153 session tracking only read first SYSTEM_VARIABLES session tracking change
For a complete list of changes made in MariaDB Connector/J 2.7.12, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 08 Nov 2023
MariaDB Connector/J 2.7.11 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1075 Correct use of LOAD DATA INFILE that is broken on windows when using "\\
" file separators
CONJ-1108 Database metadata listing TEMPORARY tables/sequences
CONJ-1118 Aurora Single Write Cluster Endpoint can't make Read DB Connection for readonly transaction
For a complete list of changes made in MariaDB Connector/J 2.7.11, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 25 Aug 2023
MariaDB Connector/J 2.7.10 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1091 Ensure setting connectTimeout as timeout for socket timeout until connection is done. This permit to set a connectTimeout, while socketTimeout can still be set to 0
For a complete list of changes made in MariaDB Connector/J 2.7.10, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 22 Mar 2023
MariaDB Connector/J 2.7.9 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1062 correcting TlsSocketPlugin to use Driver classloader
CONJ-1063 DatabaseMetaData.getTypeInfo() returns wrong value for UNSIGNED_ATTRIBUTE
For a complete list of changes made in MariaDB Connector/J 2.7.9, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 24 Jan 2023
MariaDB Connector/J 2.7.8 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1039 setQueryTimeout on CallableStatement now use server timeout when possible, permitting respecting timeout when store procedure DEFINER differ from connected user
CONJ-1041 possible ArrayIndexOutOfBoundsException when writing a String to socket prebuffer when pre-buffer is exactly 16M
CONJ-1023 set missing SSL capability in handshake after SSL exchanges
For a complete list of changes made in MariaDB Connector/J 2.7.8, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 08 Nov 2022
MariaDB Connector/J 2.7.7 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-1021 GSSAPI authentication might result in connection reset
CONJ-1019 DatabaseMetaData.getImportedKeys should return real value for PK_NAME column
CONJ-1016 avoid splitting BULK command into multiple commands in case of prepareStatement.setNull() use
CONJ-1011 correcting possible NPE when using statement.cancel() that coincide with statement.close() in another thread
CONJ-1007 Socket file descriptors are leaked after connecting with unix socket if DB is not up running
For a complete list of changes made in MariaDB Connector/J 2.7.7, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 29 Jun 2022
MariaDB Connector/J 2.7.6 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-983 avoid race condition provoking locking issue
For a complete list of changes made in MariaDB Connector/J 2.7.6, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 19 Jan 2022
MariaDB Connector/J 2.7.5 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-897 The connection id has been added to important log messages for easier correlation of these log messages with MariaDB Server logs
CONJ-914 The connect does not enable session_track_schema anymore when connecting to the server, as this is the server default already
CONJ-914 Error message “[1036] Unknown variable: session_track_schema” when MariaDB Connector/J connects to MariaDB Xpand
CONJ-896 Connection Pools do not validate other connections before use when the socket fails
CONJ-895 Options useBatchMultiSend
and usePipelineAuth
are disabled without reason for RDS
For a complete list of changes made in MariaDB Connector/J 2.7.5, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 11 Aug 2021
MariaDB Connector/J 2.7.4 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-890 getImportedKeys/getTables regression returning an empty resultset for null/empty catalog
CONJ-863 Ensure socket state when SocketTimeout occurs
CONJ-873 IndexOutOfBoundsException when executing prepared queries using automatic key generation in parallel
CONJ-884 MariaDbPoolDataSource leaks connections when the mariadb server restarts
CONJ-893 DatabaseMetaData.getColumns regression causing TINYINT(x) with x > 1 to return BIT type in place of TINYINT
CONJ-889 CallableStatement using function throw wrong error on getter
For a complete list of changes made in MariaDB Connector/J 2.7.4, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 12 May 2021
MariaDB Connector/J 2.7.3 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-883 using unix socket, hostname is not mandatory anymore
CONJ-619 Multiple batch update fails after LOAD DATA LOCAL INFILE
CONJ-854 LOAD XML INFILE breaks when using LOCAL
CONJ-855 throwing more specific exception for updatable result-set that can not be updated by ResultSet
CONJ-857 Avoid using mysql.proc table
CONJ-864 includeThreadDumpInDeadlockExceptions always includes the thread dump, even when it is not a deadlock exception
CONJ-866 long binary parsing improvement
CONJ-871 OSGi: Missing Import-Package in Connector/J bundle (javax.sql.rowset.serial)
CONJ-878 option serverSslCert file location
CONJ-880 metadata query performance correction
CONJ-858 Properties.put with object that differ from String supported even if use is not recommended
CONJ-861 executeBatch must not clear last parameter value.
For a complete list of changes made in MariaDB Connector/J 2.7.3, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 29 Jan. 2021
MariaDB Connector/J 2.7.2 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-847 NPE at UpdatableResultSet#close
CONJ-849 driver now doesn't close connection caused java.io.NotSerializableException as a result of incorrect data bind to a prepared statement parameter
CONJ-850 MariaDbResultSetMetaData#getPrecision(int) now returns correct length for character data
CONJ-851 metadata getBestRowIdentifier incompatibility with MySQL 8 correction
CONJ-852 ON DUPLICATE KEY detection failed when using new line
For a complete list of changes made in MariaDB Connector/J 2.7.2, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 23 Nov 2020
MariaDB Connector/J 2.7.1 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-842 Byte array parameters are now sent as long data
CONJ-834 use of BULK batch is conditioned by capability, not checking server version
CONJ-835 GSS Imports set in OSGI Bundle
CONJ-839 Wrong exception message when rewriteBatchedStatements is enabled
CONJ-841 ResultSetMetaData::getColumnTypeName() returns incorrect type name for LONGTEXT
CONJ-837 prepared statement cache leak on ResultSet CONCUR_UPDATABLE concurrency
CONJ-843 ParameterMetaData::getParameterType for CallableStatement parameter return expected "BINARY" value for BINARY type
CONJ-845 test suite now test SkySQL with replication setting
CONJ-838 have a 'replica' alias for 'slave' connection option
For a complete list of changes made in MariaDB Connector/J 2.7.1, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 25 Sep 2020
MariaDB Connector/J 2.7.0 is a Stable (GA) release.
NOTE: MariaDB Connector/J 2.7.0 is fully compatible with the latest release of version 2.6. Further maintenance releases will not be provided for version 2.6.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-810 normalization of resultset getDate/getTime of timestamp field.
CONJ-812 DatabaseMetadata.getBestRowIdentifier and getMaxProcedureNameLength correction
CONJ-816 Table with primary key with DEFAULT function can be inserted for 10.5 servers
CONJ-820 MySQLPreparedStatement.setObject can now handle java.lang.Character type
CONJ-828 new option ensureSocketState
to ensure protocol state
CONJ-829 Option to cache callablestatement is now disabled by default
CONJ-814 Small possible improvement of getCrossReference, getExportedKeys and getImportedKey
CONJ-825 XAResource.isSameRM implementation
CONJ-805 maxFieldSize string truncation occurs on bytes length, not character length
CONJ-807 Correcting possible Get Access Denied error if using multiple classloader
CONJ-813 setConfiguration not being called on classes that extend ConfigurableSocketFactory
CONJ-817 Switched position of REMARKS and PROCEDURE_TYPE in the getProcedures result
CONJ-830 connector now throw a better error if SSL is mandatory and server doesn't support SSL
For a complete list of changes made in MariaDB Connector/J 2.7.0, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
Release Notes for the MariaDB Connector/J 2.6 series
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 23 Jul 2020
MariaDB Connector/J 2.6.2 is a Stable (GA) release.
NOTE: MariaDB Connector/J 2.7.0 is fully compatible with this release of version 2.6. Further maintenance releases will not be provided for version 2.6.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-804 - Automatic charset correction
CONJ-809 - SelectResultSet's (ResultSet)MetaData always indicates all columns to be readonly
CONJ-802 - Version parsing depending on Classloader might result in connection Exception
For a complete list of changes made in MariaDB Connector/J 2.6.2, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 23 Jun 2020
MariaDB Connector/J 2.6.1 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-781 - DatabaseMetaData.supportsMultipleResultSets() now return correctly true.
CONJ-791 - Using CallableStatement.getTimestamp() can't get data correctly
CONJ-705 - ParameterMetadata now return parameterCount() even if no information
CONJ-775 - avoid a NPE for malformed "jdbc:mariadb:/" connection string.
CONJ-776 - Temporal Data Tables are not listed in metadata
CONJ-785 - corrected escape sequence for multiple backslash escape
CONJ-786 - Connection.setReadOnly(true ) with option assureReadOnly
now force read only connection even for mono server*
CONJ-795 - permit resultset.getRow() for TYPE_FORWARD_ONLY when streaming
CONJ-797 - Connector set UTF8mb4 equivalent in case of server configured with UTF8mb3 collation
CONJ-800 - implement Statement setEscapeProcessing to avoid escape
CONJ-801 - possible race condition using resultset getter using label
CONJ-778 - Missing import org.osgi.service.jdbc in Import-Package clause of the OSGi manifest
CONJ-779 - Logic error in stop() method of OSGi bundle activator
CONJ-780 - Logic error in implementation of OSGi DataSourceFactory (MariaDbDataSourceFactory)
CONJ-788 - resultset metadata always indicate that column is writable even if not
CONJ-789 - ensure connection reference removal on (prepared)Statement close
CONJ-782 - SkySQL testing
For a complete list of changes made in MariaDB Connector/J 2.6.1, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 20 Mar 2020
MariaDB Connector/J 2.6.0 is a Stable (GA) release.
NOTE: MariaDB Connector/J 2.6.0 is fully compatible with the latest release of version 2.5. Further maintenance releases will not be provided for version 2.5.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-768 - Check Galera allowed state when connecting when option galeraAllowedState
is set, and not only on validation
CONJ-759 - on failover, catalog changed might not be set when automatically recreating a connection.
CONJ-761 - remove unnecessary dependencies for fedora tar creation
CONJ-763 - Custom SocketFactory now can change options
CONJ-764 - DatabaseMetaData.getExportedKeys should return "PRIMARY" for PK_NAME column
CONJ-765 - Allow MariaDbDatabaseMetaData#getExportedKeys to return the exported keys for all tables
CONJ-766 - Adding a socket timeout until complete authentication, to avoid hangs is server doesn't support pipelining
CONJ-767 - permit using Aurora RO endpoint
CONJ-771 - enablePacketDebug must not reset stack on failover
CONJ-772 - JDBC Conversion Function support parsing correction
For a complete list of changes made in MariaDB Connector/J 2.6.0, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
Release Notes for the MariaDB Connector/J 2.5 series
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 27 Jan 2020
MariaDB Connector/J 2.5.4 is a Stable (GA) release.
NOTE: MariaDB Connector/J 2.6.0 is fully compatible with this release of version 2.5. Further maintenance releases will not be provided for version 2.5.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-756 - Logging correction when using enablePacketDebug option
CONJ-755 - permits to avoid setting session_track_schema with new option trackSchema
For a complete list of changes made in MariaDB Connector/J 2.5.4, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 8 Jan 2020
MariaDB Connector/J 2.5.3 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-752 - Manifest file wrong entry - thanks to Christoph Läubrich
CONJ-750 - protocol error when not setting database with maxscale
CONJ-747 - JDBC Conversion Function fast-path skipped, always using longer implementation
For a complete list of changes made in MariaDB Connector/J 2.5.3, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 22 Nov 2019
MariaDB Connector/J 2.5.2 is a Stable (GA) release.
NOTE: MariaDB Connector/J 2.5.2 is fully compatible with the latest release of version 2.4. Further maintenance releases will not be provided for version 2.4.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-745 - use pool reset only for corrected COM_RESET_CONNECTION
CONJ-743 - byte signed value wrong serialization for text protocol
CONJ-742 ensure plugin using Driver classloader
For a complete list of changes made in MariaDB Connector/J 2.5.2, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 16 Oct 2019
MariaDB Connector/J 2.5.1 is a Release Candidate (RC) release.
NOTE: MariaDB Connector/J 2.5.1 is fully compatible with the latest release of version 2.4. Further maintenance releases will not be provided for version 2.4.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-737 - Error packet caching_sha2_password not handled when not having a password
CONJ-738 - PAM authentication multiple exchanges permitting multiple steps in connection string
CONJ-735 - Multi insert regression correction returning multi generated keys
CONJ-736 - OSGI compliance
For a complete list of changes made in MariaDB Connector/J 2.5.1, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 3 Oct 2019
MariaDB Connector/J 2.5.0 is a Release Candidate (RC) release.
NOTE: MariaDB Connector/J 2.5.0 is fully compatible with the latest release of version 2.4. Further maintenance releases will not be provided for version 2.4.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
Client authentication plugins are now defined as services. This permits to easily add new client authentication plugins.
The driver has 2 new plugins caching_sha2_password
and sha256_password plugin
for MySQL compatibility
List of authentication plugins in java connector :
mysql_clear_password
auth_gssapi_client
client_ed25519
mysql_native_password
mysql_old_password
dialog (PAM)
sha256_password
caching_sha2_password
New authentication plugins can be created implementing interface org.mariadb.jdbc.authentication.AuthenticationPlugin, and listing new plugin in a META-INF/services/org.mariadb.jdbc.authentication.AuthenticationPlugin file.
Credentials are usually set using user/password in the connection string or by using DriverManager.getConnection(String url, String user, String password).
Credential plugins permit to provide credential information from other means. Those plugins have to be activated setting option credentialType
to designated plugin.
The driver has 3 default plugins :
This permits AWS database IAM authentication. The plugin generate a token using IAM credential and region. Token is valid for 15 minutes and cached for 10 minutes.
To use this credential authentication, com.amazonaws:aws-java-sdk-rds dependency must be registred in classpath. Implementation use SDK DefaultAWSCredentialsProviderChain and DefaultAwsRegionProviderChain to get IAM credential and region. see DefaultAWSCredentialsProviderChain and DefaultAwsRegionProviderChain to check how those information can be retrieved (environment variable / system properties, files, ...)
Example: jdbc:mariadb://host/db?credentialType=AWS-IAM&useSsl&serverSslCert=/somepath/rds-combined-ca-bundle.pem
with AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY and AWS_REGION environment variable set.
User and Password are retrieved from environment variables. default environment variables are MARIADB_USER and MARIADB_PWD, but can be changed by setting additional option userKey
and pwdKey
Example : using connection string jdbc:mariadb://host/db?credentialType=ENV
user and password will be retrieved from environment variable MARIADB_USER and MARIADB_PWD.
User and Password are retrieved from java properties. default property name are mariadb.user and mariadb.pwd, but property names can be changed by setting additional option userKey
and pwdKey
Example : using connection string jdbc:mariadb://host/db?credentialType=PROPERTY&userKey=mariadbUser&pwdKey=mariadbPwd
user and password will be retrieved from java properties mariadbUser
and mariadbPwd
A connection to a server initially creates a socket. When set, SSL socket is layered over this existing socket. Implementing org.mariadb.jdbc.tls.TlsSocketPlugin permit to provide custom SSL implementation for example create a new HostnameVerifier implementation.
Custom implementation need to implement org.mariadb.jdbc.tls.TlsSocketPlugin and register service META-INF/services/org.mariadb.jdbc.tls.TlsSocketPlugin
Custom implementation are activated using option tlsSocketType
CONJ-561 : JDBC 4.3 partial implementation java.sql.Statement methods isSimpleIdentifier, enquoteIdentifier, enquoteLiteral and enquoteNCharLiteral
CONJ-692 : ConnectionPoolDataSource interface addition to MariaDbPoolDataSource
CONJ-563 : closing possible option batch thread on driver deregistration.
CONJ-732 : Driver getPropertyInfo returns no options information when url is empty
CONJ-734 : DatabaseMetaData.getSchemaTerm now return "schema", not empty string
credentialType
Indicate the credential plugin type to use. Plugin must be present in classpath
tlsSocketType
Indicate TLS socket type implementation
serverRsaPublicKeyFile
Indicate path to MySQL server public RSA key file
allowPublicKeyRetrieval
Authorize client to ask MySQL server public RSA key file if not set using serverRsaPublicKeyFileDefault: false
For a complete list of changes made in MariaDB Connector/J 2.5.0, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
Release Notes for the MariaDB Connector/J 2.4 series
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 18 Sep. 2019
MariaDB Connector/J 2.4.4 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-724: Do not ignore the Calendar parameter in ResultSet#getTime(int, Calendar)
CONJ-725: Connection Failure when using PAM authenticated user on 10.4 MariaDB server
CONJ-729: master-slave regression: commit on read-only server Executed only when there is an active transaction on master connection
CONJ-726: removing possible NPE after failover on aurora cluster
For a complete list of changes made in MariaDB Connector/J 2.4.4, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 5 Aug 2019
MariaDB Connector/J 2.4.3 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
New option blankTableNameMeta
permit to have Resultset metadata getTableName methods always return blank in place of returning real table name as JDBC indicate. This is for ease migration from Oracle since Oracle driver always returns an empty string.
CONJ-717: conversion function support for other data types than default MariaDB conversion type
CONJ-722: Permit suppression of result-set metadata getTableName for oracle compatibility
CONJ-719: Saving values using Java 8 LocalTime does not store fractional parts of seconds
CONJ-716: Correcting possible NPE on non-thread safe NumberFormat (logging)
For a complete list of changes made in MariaDB Connector/J 2.4.3, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 17 Jun 2019
MariaDB Connector/J 2.4.2 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
New option defaultFetchSize
to set default fetch size. When set, all statements will be initialized with the indicated fetch size.
CONJ-703: ClassNotFoundException when trying to connect using two-authentication in an OSGI environment.
CONJ-711: Xid format id is unsigned integer, currently sending as signed value.
CONJ-700: autoReconnect=true on Basic Failover doesn't reconnect
CONJ-707: failover might throw an unexpected exception with using "failover"/"sequential" configuration on socket error
CONJ-709: includeThreadDumpInDeadlockExceptions is thrown only if option includeInnodbStatusInDeadlockExceptions is set
CONJ-710: Throw complete stackTrace when having an exception on XA Commands
CONJ-714: Error on connection on galera server when in detached mode.
CONJ-701: typo in error message in SelectResultSet.java
CONJ-679: parse Query when receiving LOAD LOCAL INFILE
For a complete list of changes made in MariaDB Connector/J 2.4.2, with links to detailed information on each push, see the changelog.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 18 Mar 2019
MariaDB Connector/J 2.4.1 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
[misc] enabled running of 'SHOW ENGINE INNODB STATUS' for error code 1213 (@mtykhenko)
[misc] reduce mutex using select @@innodb_read_only for aurora (@matsuzayaws)
[misc] updating checkstyle version dependency
[misc] permit using SSL on localsocket
[misc] java PID using java 9 ProcessHandle if existing, relying on JNA if present
CONJ-687: addition of option "useMysqlMetadata" to permit MySQL meta compatibility
CONJ-682: internal pool correction: when receiving an RST during connection validation, the pool will end up throwing connection timeout exception in place of reusing another connection.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 29 Jan 2019
MariaDB Connector/J 2.4.0 is a Stable (GA) release.
NOTE: MariaDB Connector/J 2.4.0 is fully compatible with the latest release of version 2.3. Further maintenance releases will not be provided for version 2.3.
[CONJ-654] change metadata behaviour: DatabaseMetaData.getDatabaseProductName() nows return "MariaDB"/"MySQL" according to server. This can cause some incompatibilities with some libraries and products that do not yet know Database Type "MariaDB"
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-675: permit multiple alternative authentication methods for the same user (future MariaDB 10.4 feature)
CONJ-678: permit indication of truststore/keystore type (JKS/PKCS12), then not relying on java default type
CONJ-378: GSSAPI: client can provide SPN
CONJ-667: Support MYSQL_TYPE_JSON datatype
CONJ-652: buffering available socket buffer for faster results (specifically for huge resultset)
CONJ-659: improve text performance parsing date/time/timestamp resultset
CONJ-670: ability to always refresh SSL certificate
useReadAheadInput
use a buffered inputSteam that read socket available data. Default: true
keyStoreType
indicate key store type (JKS/PKCS12). default is null, then using java default type.
trustStoreType
indicate trust store type (JKS/PKCS12). default is null, then using java default type
servicePrincipalName
when using GSSAPI authentication, SPN (Service Principal Name) use the server SPN information. When set, connector will use this value, ignoring server information
CONJ-646: possible NullPointerException when connection lost to database using aurora configuration with one node
CONJ-672: batch using multi-send can hang when using query timeout
CONJ-544: disable SSL session resumption when using SSL
CONJ-589: correcting Clob.length() for utf8mb4
CONJ-649: datasource connectTimeout URL parameter is not honoured
CONJ-650: Correction on resultset.getObject(columnName, byte[].class) when value is NULL
CONJ-665: old MySQL (<5.5.3) doesn't support utf8mb4, using utf8 on 3 bytes as connection charset by default
CONJ-671: MariaDb bulk threads occupy full cpu(99%) while db connections broken
CONJ-673: abording a connection while fetching a query still does read whole resultset
CONJ-669: SQLSyntaxErrorException when querying on empty column name
CONJ-674: make dumpQueriesOnException = false by default as per documentation
CONJ-644: small optimization when validating galera connection
CONJ-625: add coverage test
CONJ-654: DatabaseMetaData.getDriverName() returns connector/J with a lowercase c, DatabaseMetaData.getDatabaseProductName() "MariaDB"/"MySQL" according to server
This page is: Copyright © 2025 MariaDB. All rights reserved.
Release Notes for the MariaDB Connector/J 2.3 series
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 7 Sep 2018
MariaDB Connector/J 2.3.0 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
MariaDB has now 2 new options to permit identifying deadlock : New options:
includeInnodbStatusInDeadlockExceptions
add "SHOW ENGINE INNODB STATUS" result to exception trace when having a deadlock exception.Default: false
includeThreadDumpInDeadlockExceptions
add thread dump to exception trace when having a deadlock exception.Default: false
previous default value was "TLSv1, TLSv1.1", disabling TLSv1.2 by default, due to a corrected issue (MDEV-12190) with servers using YaSSL - not openSSL. Server error was . Now, the default value is "TLSv1, TLSv1.1, TLSv1.2". So TLSv1.2 can be use directly. Connecting MySQL community server use YaSSL without correction, and connection might result in SSLException: "Unsupported record version Unknown-0.0".
Using useBulkStmts permit faster batch, but cause one major issue : Batch return -1 = SUCCESS_NO_INFO
Different option use this information for optimistic update, and cannot confirm if update succeed or not. This option still makes sense, since for big batch is way more faster, but will not be activated by default.
[CONJ-628] optimization to read metadata faster
[CONJ-637] java.sql.Driver class implement DriverPropertyInfo[] getPropertyInfo, permitting listing options on querying tools
[CONJ-639] enabledSslProtocolSuites does not include TLSv1.2 by default
[CONJ-641] update maven test dependencies for java 10 compatibility
[CONJ-643] PreparedStatement::getParameterMetaData always returns VARSTRING as type resulting in downstream libraries interpreting values wrongly
[CONJ-616] correction on possible NPE on getConnection when using failover configuration and master is down, not throwing a proper exception
[CONJ-636] Error in batch might throw a NPE and not the proper Exception
This page is: Copyright © 2025 MariaDB. All rights reserved.
Release Notes for the MariaDB Connector/J 2.2 series
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 19 Jul 2018
MariaDB Connector/J 2.2.6 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
[CONJ-623] Increase connection logging when Primary node connection fails
[CONJ-384] Permit knowing affected rows number, not only real changed rows
[CONJ-624] MariaDbPoolDataSource possible NPE on configuration getter
[CONJ-622] The option "connectTimeout" must take in account DriverManager.getLoginTimeout() when set
[CONJ-621] wrong escaping when having curly bracket in table/field name
[CONJ-618] Client preparestatement parsing error on escaped ' / " in query
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 30 May 2018
MariaDB Connector/J 2.2.5 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
[CONJ-602] Add server hostname to connection packet for proxy
[CONJ-604] handle support for mysql 8.0 tx_isolation replacement by transaction_isolation
[CONJ-595] Create option to configure DONOR/DESYNCED Galera nodes to be unavailable for load-balancing : Usually, Connection.isValid just send an empty packet to the server, and server sends a small response to ensure connectivity. When a new option "useBulkStmts" option is set, the connector will ensure galera server state ("wsrep_local_state" correspond to allowed values (4 = sync mode). see galera state to now more.
[CONJ-613] Connection using "replication" Parameters fail when no slave is available
[CONJ-605] Newlines where breaking calling stored procedures
[CONJ-609] Using getDate with function DATE_ADD() with parameter using string format where return wrong result using the binary protocol
[CONJ-610] Option "allowMasterDownConnection" improvement on connection validation and Exceptions on master down
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 14 May 2018
MariaDB Connector/J 2.2.4 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
[CONJ-580] Some options are missing in documentation like default 'autocommit' value
[CONJ-597] Internal exchanges send utf8mb4 with server even if default server collation is not utf8/utf8mb4
[CONJ-600] Upgrading non-mandatory Waffle dependency to 1.9.0 (windows GSSAPI authentication)
[CONJ-575] test addition to ensure YaSSL downgrade TLSv1.2 protocol to TLSv1.1
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 14 Mar 2018
MariaDB Connector/J 2.2.3 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
[CONJ-583] possible hang indefinitely using master/slave configuration and failover occurs
[CONJ-586] erroneous transaction state when first command result as an error
[CONJ-587] using allowMasterDownConnection option can lead to NPE when using setReadOnly()
[CONJ-588] using option 'allowMasterDownConnection' won't permit to connect if all master are down
[CONJ-534] Connection.isValid() must be routed to Master and Slave connections to avoid any server timeout
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 20 Feb 2018
MariaDB Connector/J 2.2.2 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
[CONJ-564] Never ever throw an instance of java.lang.Error
[CONJ-579] Keywords missing from DatabaseMetaData.getSQLKeywords()
[CONJ-567] UrlParser.initialUrl gets overwritten
[CONJ-571] Permit java 9 serialization filtering
[CONJ-574] forcing using toLowerCase/toUpperCase with Locale.ROOT
[CONJ-560] Automatic module name for java 9
[CONJ-578] windows testing using all mariadb server
[CONJ-570] Add tests for 10.3.3 INVISIBLE column
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 22 Dec 2017
MariaDB Connector/J 2.2.1 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
[CONJ-501] provide support for authentication plugin ed25519
[CONJ-529] on failover, the driver will pause for 250ms if no servers are available before attempting to loop reconnection
[CONJ-548] COM_STMT_BULK_EXECUTE not used for INSERT ... SELECT statements
[CONJ-549] correction on connection reset when using MariaDbPoolDataSource with options useServerPrepStmts and useResetConnection enabled
[CONJ-555] failover caused by client timeout must not reuse connection
[CONJ-558] removing extra ".0" to resultset.getString() value for FLOAT/DOUBLE fields
[CONJ-550] fetching state correction when reusing statement without having read all results
[CONJ-553] RejectedExecutionException was thrown when having large amount of concurrent batches
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 9 Nov 2017
MariaDB Connector/J 2.2.0 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
[CONJ-522] Pool datasource implementation : MariaDB has now 2 different Datasources implementation. More information on pool datasource implementation.
[CONJ-530] Permit Connection.abort() forcing killing the connection even if connection is stuck in another thread (like reading big resultset)
[CONJ-531] permit cancelling streaming result-set using Statement.cancel.
[CONJ-495] Improve reading result-set data
[CONJ-510] Permit connection creation to allow execution of read-only statements on slaves when master is down
[CONJ-532] correction Statement.getMoreResults() for multi-queries
[CONJ-533] PrepareStatement.setTime() may insert incorrect time according to current timezone, time and option "useLegacyDatetimeCode"
[CONJ-535] correction on numerical getter for big BIT data type fields
[CONJ-541] Fix behavior of ResultSet#relative when crossing result set boundaries
[CONJ-469] Improve Blob/Clob implementation (avoiding array copy from result-set row)
[CONJ-539] better message when server close connection
[misc] resultset.findColumn method use column name if alias not found
[misc] default option "connectTimeout" value to 30 seconds (was 0 = no timeout)
[misc] ensure that enablePacketDebug option works when timer tick is big
This page is: Copyright © 2025 MariaDB. All rights reserved.
Release Notes for the MariaDB Connector/J 2.1 series
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 26 Sep 2017
MariaDB Connector/J 2.1.2 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
[CONJ-525] Batch result-set return array correction when DELETE statement when bulk option is used
[CONJ-526] better error message getting metadata information when SQL syntax is wrong
[CONJ-527] Resultset.last() return wrong value if resultset has only one result
[CONJ-528] Error executing LOAD DATA LOCAL INFILE when file is larger than max_allowed_packet
ensuring Connection.isValid(timeout) always respect timeout value
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 6 Sep 2017
MariaDB Connector/J 2.1.1 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
[CONJ-519] Updatable result-set possible NPE when same field is repeated.
[CONJ-514] ResultSet method wasNull() always return true after a call on a "null-date" field binary protocol handling
[CONJ-516] Permit using updatable result-set when fetching
[CONJ-511] Add legacy SSL certificate Hostname verification with CN even when SAN are set
[CONJ-515] Improve MariaDB driver stability in case JNA errors
correct typo in error message when setting wrong parameter
add trace to HostnameVerifier implementation
handling connection error when no database is provided
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 31 July 2017
MariaDB Connector/J 2.1.0 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
This version is a general availability (GA) release. (2.x version need java 8+)
When using ssl, driver check hostname against the server's identity as presented in the server's Certificate (checking alternative names or certificate CN) to prevent man-in-the-middle attack. Verification is disabled when the option "trustServerCertificate" is set.
A new option "disableSslHostnameVerification" permit to deactivate this validation.
When configuration with multi-master, Connection.isValid() will not only validate connection, but host state (@@wsrep_cluster_status). A connection to a node that is not in primary mode will return false (meaning that in pool, connection will be discarded)
ResultSet.update* methods aren't implemented statement using ResultSet.CONCUR_UPDATABLE are now able to update record. example:
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT age FROM TABLE2");
// rs will be scrollable, will not show changes made by others,
// and will be updatable
while(rs.next()){
//Retrieve by column name
int newAge = rs.getInt(1) + 5;
rs.updateDouble( 1 , newAge );
rs.updateRow();
}
Use dedicated COM_STMT_BULK_EXECUTE protocol for batch insert when possible. (batch without Statement.RETURN_GENERATED_KEYS and streams) to have faster batch (significant only if server >= MariaDB 10.2.7).
A new option "useBulkStmts" permit to deactivate this functionality.
[CONJ-508] Connection.getCatalog() optimisation for 10.2+ server using new session_track_schema capabilities
[CONJ-492] Failover handle automatic reconnection on KILL command
[CONJ-502] isolation leak when using multiple pools on same VM on failover
[CONJ-503] regression on aurora Connection Connection.isReadOnly()
[CONJ-505] correcting issue that ended throwing "Unknown prepared statement handler given to mysqld_stmt_execute"
[CONJ-496] return rounded numeric when querying on a decimal field in place of throwing an exception for compatibility
This page is: Copyright © 2025 MariaDB. All rights reserved.
Release Notes for the MariaDB Connector/J 2.0 series
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 27 Jun 2017
MariaDB Connector/J 2.0.3 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-473 - when useServerPrepStmts is not set, the PREPARE statement must not be cached.
CONJ-494 - Handle PrepareStatement.getParameterMetaData() if query cannot be PREPAREd
CONJ-497 - escape string correction for big query
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 7 Jun 2017
MariaDB Connector/J 2.0.2 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
CONJ-490 - DataSource connectTimeout is in second, but was set on socket timeout that is in milliseconds
CONJ-481 - option "useServerPrepStmts" : Possible Buffer overrun reading ResultSet
CONJ-470 - option "rewriteBatchedStatements" : Error when executing SQL contains "values" that aren't inserts
CONJ-477 - option "usePipelineAuth" : incompatibility with aurora. Now automatically disabled when aurora is detected
CONJ-479 - compatibility : ArrayIndexOutOfBoundsException on connect to MySQL 5.1.73
CONJ-480 - compatibility : Access denied error on connect to MySQL 5.1.73
CONJ-471 - metadata : DatabaseMetadata.getPrimaryKeys() return a null value for PK_NAME, must always be 'PRIMARY'
CONJ-483 - metadata : Wrong content of DEFERRABILITY column in MariaDbDatabaseMetaData
CONJ-487 - No timeout exception on client PrepareStatement
CONJ-489 - log: javax.transaction.xa.XAException message error truncated ( near '0x )
CONJ-478 - Change CI tests to use maxscale 2.1 version
CONJ-482 - Connection.setNetworkTimeout don't throw exception if no executor
CONJ-488 - Use java.net.URL to read keyStore and trustStore again
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 11 May 2017
MariaDB Connector/J 2.0.1 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
Java 8 is the minimum required version The last release with Java 7 compatibility is MariaDB Connector/J 1.6.0
The "useServerPrepStmts" option now defaults to false.
Benchmarks show that if the query has already been used (then prepared), there is a significant performance increase. On the other hand, when the command is not already prepared, the additional exchange for preparing this command will slightly slow down the overall execution of the command
The applications that repeatedly use the same queries have the ability to activate this option, but the general case is to use the direct command (text protocol).
Binary protocol is permissive and did permit using character for LIMIT that accept only integer :
try (PreparedStatement p = connection.prepareStatement("SELECT * from mysql.user LIMIT ?")) {
p.setString(1, "10");
p.executeQuery();
}
With the "useServerPrepStmts" set to false, LIMIT parameter must be set to numeric field:
try (PreparedStatement p = connection.prepareStatement("SELECT * from mysql.user LIMIT ?")) {
p.setInt(1, 10);
p.executeQuery();
}
CONJ-467 - changing database metadata compability to 4.2
CONJ-460 - Query that contain multiqueries with fetch and EOF deprecation failed
CONJ-464 - Using of "slowQueryThresholdNanos" option with value > Integer.MAX_VALUE results in class cast exception
CONJ-452 - correcting inline ssl server certificate parsing
CONJ-461 - LAST_INSERT_ID() validation check correction for rewrite statement
CONJ-468 - autoIncrementIncrement value loaded during connection, avoiding a query for first statement for rewrite
New Option :CONJ-465 - new option "enablePacketDebug"
CONJ-318 Implement some protocol changes that permit saving some bytes. (part of MDEV-8931).
CONJ-341 With a MariaDB 10.2 or MySQL 5.7 server, ensure driver state:
driver now always gets the current database, even when the database is changed by a query.
when using rewriteBatchedStatements, return the correct autoincrement ids even when the session variable @auto_increment_increment has changed during the session.
CONJ-393 The previous implementation of query timeout handling (using Statement.setQueryTimeout) will create an additional thread with a scheduler. When timeout is reached, a temporary connection will be created to permit executing "KILL QUERY ", then closing the temporary connection. When the query ends before timeout, the scheduled task will be canceled.
For servers > MariaDB 10.1.2, the query timeout will be handled server side using the "SET MAX_STATEMENT_TIME FOR" command.
CONJ-315 When closing a statement that was fetching a result-set (using Statement.setFetchSize) and all rows were not read at the time of closing, a kill query command will be executed on close, to avoid having to parse all remaining results.
CONJ-442 Very large commands now don't use an intermediate buffer. Commands are sent directly to socket avoiding using memory. This permits sending very large objects (1G) without using any additional memory.
CONJ-366 Faster connection: bundle first commands in authentication packet The driver executes different commands on connection. Those queries are now sent using pipeline (all queries are sent, only then are all results read).
New Options:
CONJ-368 Parsing row result optimisation to avoid creating byte array to the maximum for faster results and less memory use.
CONJ-409 - PrepareStatement.setObject(...) support for with java 8 temporal object.
CONJ-411 - support for Statement maxFieldSize
CONJ-443 - NullpointerException when making concurrent procedure calls
CONJ-391 - Improve connection using SELECT in place of SHOW to avoid creating a mutex server side.
CONJ-402 - tcpKeepAlive option now default to true.
CONJ-448 - QueryException: Incorrect arguments to mysqld_stmt_execute on inserting an "emptyString"-Lob with JPA
CONJ-451 - Respect type parameter of ResultSet.getObject with type
CONJ-455 - MetaData : tinyInt1isBit doesn't work properly in TINYINT(1) column that is marked as UNSIGNED
CONJ-450 - NPE on setClientInfo if value is an empty string
CONJ-457 - trustStore : Retain leading slash when trust store beings with 'file:/'
CONJ-160 - ConnectionPool test using hikariCP
CONJ-307 - valid connector java 9 early access
CONJ-402 - make tcpKeepAlive option default to true
CONJ-411 - Implement Statement maxFieldSize
CONJ-449 - Permit CallableStatement streaming
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 20 April 2017
MariaDB Connector/J 2.0.0-RC is a RC (Release candidate) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
Java 8 is now minimum required version.
CONJ-318 Implement some protocol changes that permit to save some bytes. (part of MDEV-8931).
CONJ-341 With server with version MariaDB 10.2, MySQL 5.7, ensure driver state :
driver does now always get current database, even when database is changed by query.
when using rewriteBatchedStatements does return correct autoincrement ids even when session variable @auto_increment_increment has change during session.
CONJ-393 Previous implementation of query timeout handling (using Statement.setQueryTimeout) will create an additional thread with a scheduler. When timeout is reached, a temporary connection will be created to permit executing "KILL QUERY ", then closing the temporary connection. When query ended before timeout, the scheduled task will be canceled.
If server is > 10.1.2, query timeout will be handle server side using "SET MAX_STATEMENT_TIME FOR" command.
CONJ-315 When closing a Statement that was fetching a result-set (using Statement.setFetchSize) and all rows where not read at the time of closing, a kill query command will be executed on close, to avoid having to parse all remaining results.
CONJ-442 Very big command now doesn't use any intermediate buffer. Commands are send directly to socket avoiding using memory, This permit to send very large object (1G) without using any additional memory.
CONJ-366 Faster connection : bundle first commands in authentication packet Driver execute different command on connection. Those queries are now send using pipeline (all queries are send, then only all results are reads).
New Options :
CONJ-368 Parsing row result optimisation to avoid creating byte array to the maximum for faster results and less memory use.
CONJ-409 - PrepareStatement.setObject(...) support for with java 8 temporal object.
CONJ-411 - support for Statement maxFieldSize
CONJ-443 - NullpointerException when making concurrent procedure calls
CONJ-391 - Improve connection using SELECT in place of SHOW to avoid creating a mutex server side.
CONJ-402 - tcpKeepAlive option now default to true.
CONJ-448 - QueryException: Incorrect arguments to mysqld_stmt_execute on inserting an "emptyString"-Lob with JPA
CONJ-451 - Respect type parameter of ResultSet.getObject with type
CONJ-455 - MetaData : tinyInt1isBit doesn't work properly in TINYINT(1) column that is marked as UNSIGNED
CONJ-450 - NPE on setClientInfo if value is an empty string
CONJ-457 - trustStore : Retain leading slash when trust store beings with 'file:/'
CONJ-160 - ConnectionPool test using hikariCP
CONJ-307 - valid connector java 9 early access
CONJ-402 - make tcpKeepAlive option default to true
CONJ-411 - Implement Statement maxFieldSize
CONJ-449 - Permit CallableStatement streaming
This page is: Copyright © 2025 MariaDB. All rights reserved.
Release Notes for the MariaDB Connector/J 1.8 series
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 11 Feb 2019
MariaDB Connector/J 1.8.0 is a Stable (GA) release.
NOTE: MariaDB Connector/J 1.8.x version is the maintenance version for Java 7. Support for java 6 is dropped
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
Report issue from 2.3.x 2.4.x to 1.8.0:
[CONJ-675] permit multiple alternative authentication methods for the same user (future MariaDB 10.4 feature)
{CONJ-678] permit indication of truststore/keystore type (JKS/PKCS12), then not relying on java default type
[CONJ-378] GSSAPI: client can provide SPN
[CONJ-667] Support MYSQL_TYPE_JSON datatype
[CONJ-652] faster results buffering socket available
[CONJ-659] improve text performance reading date/time/timestamp resultset
[CONJ-670] ability to Refresh SSL certificate
[CONJ-642] disable the option "useBulkStmts" by default
[CONJ-628] optimization to read metadata faster
[CONJ-637] java.sql.Driver class implement DriverPropertyInfo[] getPropertyInfo, permitting listing options on querying tools
[CONJ-641] update maven test dependencies for java 10 compatibility
[CONJ-643] PreparedStatement::getParameterMetaData always returns VARSTRING as type resulting in downstream libraries interpreting values wrongly
[CONJ-623] Increase connection logging when Primary node connection fails
[CONJ-384] Add option permit having "affected" or "found" rows
h3. Bugfixes
[CONJ-646] possible NullPointerException when connection lost to database using aurora configuration with one node
[CONJ-672] batch using multi-send can hang when using query timeout
[CONJ-544] disable SSL session resumption when using SSL
[CONJ-589] correcting Clob.length() for utf8mb4
[CONJ-649] datasource connectTimeout URL parameter is not honoured
[CONJ-650] Correction on resultset.getObject(columnName, byte[].class) when value is NULL
[CONJ-665] old MySQL (<5.5.3) doesn't support utf8mb4, using utf8 on 3 bytes as connection charset by default
[CONJ-671] MariaDb bulk threads occupy full cpu(99%) while db connections broken
[CONJ-673] abording a connection while fetching a query still does read whole resultset
[CONJ-669] SQLSyntaxErrorException when querying on empty column name
[CONJ-674] make dumpQueriesOnException = false by default as per documentation
[CONJ-616] correction on possible NPE on getConnection when using failover configuration and master is down, not throwing a proper exception
[CONJ-636] Error in batch might throw a NPE and not the proper Exception
[CONJ-624] MariaDbPoolDataSource possible NPE on configuration getter
[CONJ-622] The option "connectTimeout" must take in account DriverManager.getLoginTimeout() when set
[CONJ-621] wrong escaping when having curly bracket in table/field name
[CONJ-618] Client preparestatement parsing error on escaped ' / " in query
[CONJ-644] small optimization when validating galera connection
[CONJ-625] add coverage test
[CONJ-654] DatabaseMetaData.getDriverName() returns connector/J with a lowercase c
This page is: Copyright © 2025 MariaDB. All rights reserved.
Release Notes for the MariaDB Connector/J 1.7 series
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 10 Dec 2020
MariaDB Connector/J 1.7.6 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
Reporting correction/contribution to java 7 supported version
CONJ-682 : When receiving an RST during connection validation, the pool will end up throwing a connection timeout exception in place of reusing another connection.
CONJ-522 : When using multiple pools and a pool is closed, it closes a global executor used by all pools. This occurs even if there are still other pools open.
CONJ-750 : protocol error when not setting database, indicating null authentication plugin
CONJ-639 : enabledSslProtocolSuites does not include TLSv1.2 by default
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
Release NotesChangelogConnector/J Overview
Release date: 09 Dec 2020
MariaDB Connector/J 1.7.5 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
This version contains breaking changes that weren't expect in a corrective release. Correction have been done with 1.7.6 version, that is the 1.7.4 version + corrections.
Note: This page describes features in an unreleased version of MariaDB Connector/J.Unreleased means there are no official packages or binaries available for download which contain the features. The source code is available on GitHub.
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 30 May 2018
MariaDB Connector/J 1.7.4 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
[CONJ-602] Add server hostname to connection packet for proxy
[CONJ-604] handle support for mysql 8.0 tx_isolation replacement by transaction_isolation
[CONJ-595] Create option to configure DONOR/DESYNCED Galera nodes to be unavailable for load-balancing: Usually, Connection.isValid just send an empty packet to the server, and the server sends a small response to ensure connectivity. When a new option "useBulkStmts" option is set, the connector will ensure Galera server state ("wsrep_local_state" correspond to allowed values (4 = sync mode). see galera state to now more.
[CONJ-613] Connection using "replication" Parameters fail when no slave is available
[CONJ-605] Newlines where breaking calling stored procedures
[CONJ-609] Using getDate with function DATE_ADD() with parameter using string format where return wrong result using the binary protocol
[CONJ-610] Option "allowMasterDownConnection" improvement on connection validation and Exceptions on master down
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 14 Mar 2018
MariaDB Connector/J 1.7.3 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
[CONJ-583] possible hang indefinitely using master/slave configuration and failover occur
[CONJ-586] erroneous transaction state when first command result as error
[CONJ-587] using allowMasterDownConnection option can lead to NPE when using setReadOnly()
[CONJ-588] using option 'allowMasterDownConnection' won't permit to connect if master is down
[CONJ-534] Connection.isValid() must be routed to Master and Slave connections to avoid any server timeout
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 20 Feb 2018
MariaDB Connector/J 1.7.2 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
[CONJ-564] Never ever throw an instance of java.lang.Error
[CONJ-579] Keywords missing from DatabaseMetaData.getSQLKeywords()
[CONJ-567] UrlParser.initialUrl gets overwritten
[CONJ-571] Permit java 9 serialization filtering
[CONJ-574] forcing using toLowerCase/toUpperCase with Locale.ROOT
[CONJ-560] Automatic module name for java 9
[CONJ-578] windows testing using all mariadb server
[CONJ-570] Add tests for 10.3.3 INVISIBLE column
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 22 Dec 2017
MariaDB Connector/J 1.7.1 is a Stable (GA) release.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
[CONJ-501] provide support for authentication plugin ed25519
[CONJ-529] on failover, the driver will pause for 250ms if no servers are available before attempting to loop reconnection
[CONJ-548] COM_STMT_BULK_EXECUTE not used for INSERT ... SELECT statements
[CONJ-549] correction on connection reset when using MariaDbPoolDataSource with options useServerPrepStmts and useResetConnection enabled
[CONJ-555] failover caused by client timeout must not reuse connection
[CONJ-558] removing extra ".0" to resultset.getString() value for FLOAT/DOUBLE fields
[CONJ-550] fetching state correction when reusing statement without having read all results
[CONJ-553] RejectedExecutionException was thrown when having large amount of concurrent batches
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 9 Nov 2017
MariaDB Connector/J 1.7.0 is a Stable (GA) release.
This is the pendant of 2.2.0 changes for java 6-7.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
[CONJ-522] Pool datasource implementation : MariaDB has now 2 different Datasources implementation. More information on pool datasource implementation.
[CONJ-530] Permit Connection.abort() forcing killing the connection even if connection is stuck in another thread (like reading big resultset)
[CONJ-531] permit cancelling streaming result-set using Statement.cancel.
[CONJ-495] Improve reading result-set data
[CONJ-510] Permit connection creation to allow execution of read-only statements on slaves when master is down
[CONJ-532] correction Statement.getMoreResults() for multi-queries
[CONJ-533] PrepareStatement.setTime() may insert incorrect time according to current timezone, time and option "useLegacyDatetimeCode"
[CONJ-535] correction on numerical getter for big BIT data type fields
[CONJ-541] Fix behavior of ResultSet#relative when crossing result set boundaries
[CONJ-469] Improve Blob/Clob implementation (avoiding array copy from result-set row)
[CONJ-539] better message when server close connection
[misc] resultset.findColumn method use column name if alias not found
[misc] default option "connectTimeout" value to 30 seconds (was 0 = no timeout)
[misc] ensure that enablePacketDebug option works when timer tick is big
This page is: Copyright © 2025 MariaDB. All rights reserved.
Release Notes for the MariaDB Connector/J 1.6 series
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 26 Sep 2017
MariaDB Connector/J 1.6.5 is a Stable (GA) release compatible with java 6, 7, 8.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
[CONJ-525] Batch result-set return array correction when DELETE statement when bulk option is used
[CONJ-526] better error message getting metadata information when SQL syntax is wrong
[CONJ-527] Resultset.last() return wrong value if resultset has only one result
[CONJ-528] Error executing LOAD DATA LOCAL INFILE when file is larger than max_allowed_packet
ensuring Connection.isValid(timeout) always respect timeout value
correct typo in error message when setting wrong parameter
handling connection error when no database is provided
correcting possible race condition when using Statement/PrepareStatement in multi-thread with fetch size set
This page is: Copyright © 2025 MariaDB. All rights reserved.
The most recent Stable (GA) release of MariaDB Connector/Java is:
DownloadRelease NotesChangelogConnector/J Overview
Release date: 6 Sep 2017
MariaDB Connector/J 1.6.4 is a Stable (GA) release compatible with java 6, 7, 8.
For an overview of MariaDB Connector/J see theAbout MariaDB Connector/J page
[CONJ-517] Result-set identification of OK_Packet with 0xFE header when using option useCompression
[CONJ-514] ResultSet method wasNull() always return true after a call on a "null-date" field binary protocol handling
[CONJ-515] Improve MariaDB driver stability in case JNA errors
correct typo in error message when setting wrong parameter
handling connection error when no database is provided
correcting possible race condition when using Statement/PrepareStatement in multi-thread with fetch size set
This page is: Copyright © 2025 MariaDB. All rights reserved.