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.