10bet网址
MySQL Connector/J 8.0 Release Notes
Related Documentation Download these Release Notes
PDF (US Ltr)- 245.3Kb
PDF (A4)- 243.7Kb


MySQL Connector/J 8.0 Release Notes/ Changes in MySQL Connector/J 8.0.12 (2018-07-27, General Availability)

Changes in MySQL Connector/J 8.0.12 (2018-07-27, General Availability)

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.

Functionality Added or Changed

  • X DevAPI:The following changes have been made to the API:

    • RemovedModifyStatement.arrayDelete()andModifyStatement.merge().

    • RenamedColletion.find().limit().skip()toColletion.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:

      • TheFindParamsclass has been renamed toFilterParams

      • TheAbstractFindParamsclass has been renamed toAbstractFilterParams

      • TheDocFindParamsclass has been renamed toDocFilterParams

      • TheTableFindParamsclass has been renamed toTableFilterParams

      Notice that the methods in the originalFilterParamsclass have been moved under the newAbstractFilterParamsclass.

    (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 propertyxdevapi.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 theINFORMATION_SCHEMA.KEYWORDStable on the MySQL server when a connection session is established. The list can then be accessed by callingDatabaseMetaData.getSQLKeywords().

  • To simplify the code, theReadablePropertyandModifiablePropertyclasses have been consolidated into theRuntimePropertyclass.

Bugs Fixed

  • X DevAPI:When creating an X DevAPI session using aPropertiesmap instead of a connection string, referring to property keys likehost,port, andprotocolin lowercase caused aNullPointerException. 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 aPropertiesmap instead of a connection string, aNullPointerExceptionwas returned when no connection password was provided. (Bug #27629553)

  • X DevAPI:When using thegetConnection()method with themysqlx:scheme in the connection URL, Connector/J returned an ordinary JDBC connection instead of an X-Protocol connection. (Bug #26089880)

  • Ifwait_timeoutwas set on the server and the Connector/J had the connection propertyinteractiveClient=false, or ifinteractive_timeoutwas set on the server and Connector/J had the connection propertyinteractiveClient=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 aCJCommunicationsException, 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 aSQLNonTransientConnectionException, which prevented the application from connecting to its database. With this fix, Connector/J returns null whenever a connection string does not start withjdbc:mysql:ormysqlx:, so connections to non-MySQL databases are not blocked. (Bug #26724154, Bug #87600)

  • AwasNull()call on aResultSetdid not return the proper value unlessAbstractResultsetRow.getNull()orAbstractResultsetRow.getValueFromByte()was called before. This caused data loss when Connector/J was used with frameworks like Hibernate, which rely onwasNull()calls to properly retrieve data. With this fix,wasNull()returns a correct value as long as some getter method has been called before on theResultSet. (Bug #25924324, Bug #85941)