MySQL Connector/J 8.0 Release Notes
Version 8.0.12 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, 5.7, 5.6, and 5.5. It supports the Java Database Connectivity (JDBC) 4.2 API, and implements the X DevAPI.
X DevAPI: The following changes have been made to the API:
Removed ModifyStatement.arrayDelete()
and
ModifyStatement.merge()
.
Renamed Colletion.find().limit().skip()
to Colletion.find().limit().offset()
.
To simplify the class hierarchy and to have the class names reflect better the classes' functions, the following changes have been made:
The FindParams
class has been renamed
to FilterParams
The AbstractFindParams
class has been
renamed to AbstractFilterParams
The DocFindParams
class has been
renamed to DocFilterParams
The TableFindParams
class has been
renamed to TableFilterParams
Notice that the methods in the original
FilterParams
class have been moved under
the new AbstractFilterParams
class.
(Bug #28027459)
X DevAPI:
Connector/J now uses synchronous client sockets
(java.net.Socket
) by default to communicate
with MySQL servers for X Protocol connections. While
asynchronous sockets can still be used by setting the connection
property xdevapi.useAsyncProtocol=true
, this
is not recommended, as it might result in performance
degradation for Connector/J.
(Bug #27522054)
X DevAPI: Connector/J now gives provision for the use of a custom socket factory for X Protocol connections to MySQL Servers using Unix domain sockets. See Section 6.8, "Connecting Using Unix Domain Sockets" for details.
Connector/J now retrieves the MySQL keyword list from the
INFORMATION_SCHEMA.KEYWORDS
table on the MySQL server when a connection session is
established. The list can then be accessed by calling
DatabaseMetaData.getSQLKeywords()
.
To simplify the code, the ReadableProperty
and ModifiableProperty
classes have been
consolidated into the RuntimeProperty
class.
X DevAPI:
When creating an X DevAPI session using a
Properties
map instead of a connection
string, referring to property keys like host
,
port
, and protocol
in
lowercase caused a NullPointerException
. With
the fix, both upper and lower cases can now be used.
(Bug #27652379)
X DevAPI:
When creating an X DevAPI session with an SSL connection using a
Properties
map instead of a connection
string, a NullPointerException
was returned
when no connection password was provided.
(Bug #27629553)
X DevAPI:
When using the getConnection()
method with
the mysqlx:
scheme in the connection URL,
Connector/J returned an ordinary JDBC connection instead of an
X-Protocol connection.
(Bug #26089880)
If wait_timeout
was set on the
server and the Connector/J had the connection property
interactiveClient=false
, or if
interactive_timeout
was set on
the server and Connector/J had the connection property
interactiveClient=true
, a connection is
invalidated when it has idled for a longer time than the set
timeout. When such a timeout occurred, Connector/J threw a
CJCommunicationsException
, without indicating
it was a timeout. With this fix, the error message returned
explains the issue and suggests how to avoid it.
(Bug #27977617, Bug #90753)
When an application tried to connect to a non-MySQL database
through some JDBC driver and Connector/J happened to be on the
class path also, Connector/J threw a
SQLNonTransientConnectionException
, which
prevented the application from connecting to its database. With
this fix, Connector/J returns null whenever a connection string
does not start with jdbc:mysql:
or
mysqlx:
, so connections to non-MySQL
databases are not blocked.
(Bug #26724154, Bug #87600)
A wasNull()
call on a
ResultSet
did not return the proper value
unless AbstractResultsetRow.getNull()
or
AbstractResultsetRow.getValueFromByte()
was
called before. This caused data loss when Connector/J was used
with frameworks like Hibernate, which rely on
wasNull()
calls to properly retrieve data.
With this fix, wasNull()
returns a correct
value as long as some getter method has been called before on
the ResultSet
.
(Bug #25924324, Bug #85941)