Version 8.0.29 is the latest General Availability release of the 8.0 series of MySQL Connector/J. It is suitable for use with MySQL Server versions 8.0 and 5.7. It supports the Java Database Connectivity (JDBC) 4.2 API, and implements the X DevAPI.
-
Historically, MySQL has used
utf8as an alias forutf8mb3. Since release 8.0.29,utf8mb3has become a recognized (though deprecated) character set on its own for MySQL Server. Therefore, Connector/J has addedutf8mb3to its character set mapping, and users are encouraged to update to Connector/J 8.0.29 to avoid potential issues when working with MySQL Server 8.0.29 or later. (Bug #33850155)References: See also: Bug #33635120.
A new connection property socksProxyRemoteDns has been added, which, when set to
true, makes theSocksProxySocketFactoryexecute its ownconnect()implementation that passes the unresolvedInetSocketAddressof a MySQL Server host to the created proxy socket, instead of having the address resolved locally. (Bug #77924, Bug #25710160)The code for prepared statements has been refactored to make the code simpler and the logic for binding more consistent between
ServerPreparedStatementandClientPreparedStatement. (WL #14750)Connector/J now supports Fast Identity Online (FIDO) Authentication. (WL #14834)
X DevAPI: If the connection property xdevapi.ssl-mode was set to
DISABLED(or xdevapi.ssl-mode was not set, but the value was picked up from the sslMode setting), specifying some of the security properties caused Connector/J to throw an error. With this fix, even when encryption is turned off and irrelevant security properties are set, Connector/J does not throw an error. (WL #14835)DatabaseMetaData.getDefaultTransactionIsolation()returned a wrong value. It now returns the correct value ofConnection.TRANSACTION_REPEATABLE_READ. (Bug #33723611)Statement executions failed for replication connections when useCursorFetch was
trueanddefaultFetchSizewas greater than 0. (Bug #25701740)Prepared statements were parsed incorrectly sometimes when they contained comments marked by
/*and*/. (Bug #21978230)-
A connection did not maintain the correct autocommit state when it was used in a pool with
useLocalSessionState=true. (Bug #106435, Bug #33850099)References: This issue is a regression of: Bug #33054827.
A spelling error in the error message for the buffer length being less than the expected payload length has been corrected. Thanks to Jianjian Song for contributing the fix. (Bug #106397, Bug #33893591)
When using client-side prepared statements, if the
VALUESclause came after theON DUPLICATE KEY UPDATEclause or it came at the end of the statement, aStringIndexOutOfBoundsExceptionwas thrown. This patch refactors the query parser to fix the problem behind the issue, and also to improve the parser's performance. (Bug #106240, Bug #33781440)An unnecessary boxing has been removed from
findColumn()in theResultSetImplclass. Thanks to Pei Pei Ning for contributing this improvement. (Bug #106171, Bug #33757217)When decoding decimals, the constructor used for creating the
BigDecimalobject has been changed fromBigDecimal(String)toBigDecimal(char[])in order to save memory. Thanks to Chen Yi for contributing to this improvement. (Bug #106065, Bug #33726184)When inserting
BigDecimalvalues into a database using rewritable server-side prepared statements with cursor-based fetching, the values suffered precision loss. (Bug #105915, Bug #33678490)When the Connector/J logger level was at
TRACE, a null bind value for aPreparedStatementresulted in aNullPointerExceptionwhen the logger tried to read the value. This patch added a null check to avoid the exception to be thrown under the situation. (Bug #104349, Bug #33563548)When the connection property rewriteBatchedStatements was set to
true, inserting aBLOBusing a prepared statement andexecuteBatch()resulted in aNullPointerException. (Bug #85317, Bug #25672958)ResultSetMetaDataandDatabaseMetaDatareturnedTypes.DATEfor aYEARtable column even whenyearIsDateType=false. With this fix,Types.SMALLINTwas returned correctly in the situation. (Bug #82084, Bug #23743938)A
PreparedStatementcould not be rewritten for batch insert if any table column involved contained "select" as a substring in the column name. (Bug #81468, Bug #23312764)When using server-side prepared statements and the connection property
profileSQLwas set to true, setting a parameter of typeLONGTEXTusing aStringReader()resulted in ajava.io.NotSerializableException. (Bug #62006, Bug #16714956)Data truncation occurred for
INOUTtype parameters of data typeBIT(1)for stored procedures. (Bug #38954, Bug #11749415)