MySQL JDBC 驱动 5.1.37 版本发布,兼容 JDBC 4.2API,带来部分新功能,修复许多 bug,包括之前发现的连接 5.0 或者 5.1 服务器异常的回归问题。
MySQL Connector/J 5.1.37 是个维护版本,适用于 MySQL 5.5/5.6/5.7 版本。这是第一个支持 Java Database Connectivity 4.2 API 的版本。 新特性和改进
methodCompressedInputStream.getNextPacketFromServer()has been refactored to reduce memory use and garbage collection
efforts caused by the use of the inflater.
(Bug #21648826, Bug #78106)
The code for executing aREPLACEstatement
whenrewriteBatchedStatements=truehas been
refactored by putting multiple batched statements into a single
query, making it work more like anINSERTstatement. This
increases the efficiency for runningREPLACEstatements. Thanks to Jie Han
for
contributing the code.
(Bug #21429909, Bug #77681)
A new connection property,truncateFractionalSeconds=true|false, has
been introduced. It controls whether fractional seconds in
timestamps are to be truncated on the client side or to be sent
to the server side for truncation there. See the entry for the
new property in Driver/Datasource Class Names, URL Syntax and Configuration Properties for Connector/J for details. Thanks to Kwon Nam Son for contributing the code.
(Bug #21304726, Bug #77449)
Connector/J now supports the JSON data type, which has been
supported by the MySQL server since release 5.7.8.
A new connection property,enableEscapeProcessing, has been introduced
for supporting JDBC 4.2. It sets the default escape processing
behavior for Statement objects. See the entry for the new
property in Driver/Datasource Class Names, URL Syntax and Configuration Properties for Connector/J for details.
Bug 修复
AClassCastExceptionresulted for a Fabric
connection whenrewriteBatchedStatementswas “true” and a batch update was rewritten.
(Bug #21876798)
A number of regression tests in the testsuite failed when they
were run against MySQL 5.7, because theNO_AUTO_CREATE_USERSQL mode had become the
default behavior of the server since MySQL 5.7.7, making someGRANTstatements in the test fail when a new
user had to be created. With this fix,CREATE
USERstatements have been added to the regressions
tests when needed, to prevent the test failures.
(Bug #21697684, Bug #78225)
Connecting to MySQL 5.0 and 5.1 using Connector/J 5.1.36
resulted in anSQLException, with a complaint
for an “Unknown system variable 'language'”.
(Bug #21415165, Bug #77665)
TheIS_GENERATEDCOLUMNfield was empty in the
result returned byDatabaseMetaData.getColumns(). This fix
corrects the field so that it contains aYESorNOaccording to whether the column is
generated or not.
(Bug #20969312, Bug #76859)
getTypeInfo()returned an incorrectPRECISIONvalue of “255” for the
data type ofVARCHAR. The return value has
been corrected to “65535.” (Bug #20675539, Bug #76187)
When a connection is forcefully closed withabortInternal()in theConnectionImplclass, a null point exception
sometimes resulted. This is now avoided by putting the
associatedthis.io.releaseResources()call
inside a try block, so that the exception, unavoidable due to a
race condition, can be properly caught and ignored.
(Bug #20536592, Bug #75849)
If the MySQL server's default authentication method was SHA256
but neither one of the Connector/J connection propertiesallowPublicKeyRetrievalandserverRSAPublicKeyFilewas set, the
authentication failed with aTransientConnectionException, complaining
that the public key could not be retrieved. With this fix,
authentication continues in the situation, allowing other
enabled authentication methods to be tried.
(Bug #20433047, Bug #75670)
When a lock wait timeout occurred, anSQLExceptionwas thrown while anSQLTransientExceptionshould be thrown
instead. It was due to a wrong SQLState number used in the code,
which has now been fixed.
(Bug #16634180)
When the time zone on the MySQL server was configured to “GMT” but the client was in a different time zone,
Connector/J would make wrong adjustments for event timestamps
when working with the server.
(Bug #11758179, Bug #50348) 更多改进内容请看发行说明。 |