These release notes were created with the assistance of MySQL HeatWave GenAI.
Version 9.6.0 is a new GA release of MySQL Connector/J. MySQL Connector/J 9.6.0 supersedes 9.5 and is recommended for use on production systems. This release can be used against MySQL Server version 8.0 and later. It supports the Java Database Connectivity (JDBC) 4.2 API, and implements the X DevAPI.
-
Using a multihost JDBC URL with the property value,
zeroDateTimeBehavior=convertToNull, resulted in an exception.As of this release, legacy values are normalized in both host and general properties in
ConnectionUrl.Our thanks to Wu Zhengyi and the team at AliBaba for the contribution. (Bug #119271, Bug #38599496)
-
Queries containing the string
INTOwithin valid tokens, such as table or column names, were not handled correctly. Errors were returned similar to the following:java.sql.SQLException: Statement.executeQuery() cannot issue statements that do not produce result setsOur thanks to Milo van der Zee for the contribution. (Bug #119245, Bug #38599240)
Batch statement handling was inconsistent. Rewritten batch queries allowed statements which produced results wets, while non-rewritten batches did not. As of this release, rewritten batch statements now check the result type of each query and throw an exception if any result set producing query is included. (Bug #118234, Bug #37975837)
-
Setting the value of
Statement.setMaxRows()affected the value ofStatement.setFetchSize()and vice versa.As of this release, the two methods are independent of each other. (Bug #118002, Bug #37843004)
-
The login timeout set with DriverManager.setLoginTimeout() incorrectly affected JdbcConnection.changeUser() calls. The handling of login timeouts was refactored to apply only during initial authentication, not when changing users on an existing connection. Post-authentication code was moved higher in the call stack to ensure timeouts are only considered during the initial login, addressing the improper timeout behavior changeUser() calls.
Our thanks to Kazuhisa Kawashima for the contribution. (Bug #113413, Bug #36107426)
Statement.getUpdateCount()returned differing values depending on whetherrewriteBatchedStatementswas enabled. (Bug #113336, Bug #36080226)Connector/J returned a result set of generated keys containing only 0 values after a batch of queries was rewritten into a multi-query, even though no keys were generated. Connector/J now checks the value of the last generated key for each executed query and excludes keys with a value of zero from the result set. As a result, Statement.getGeneratedKeys() now accurately returns an empty result set when no keys are generated, including for multi-query batch executions. (Bug #113130, Bug #36043125)