Documentation Home
MySQL 连接器/J 8.0 发行说明  /  MySQL Connector/J 8.0.12 的变化(2018-07-27,全面上市)

MySQL Connector/J 8.0.12 的变化(2018-07-27,全面上市)

版本 8.0.12 是 8.0 系列 MySQL Connector/J 的最新通用版本。它适用于 MySQL 服务器版本 8.0、5.7、5.6 和 5.5。它支持 Java 数据库连接 (JDBC) 4.2 API,并实现了 X DevAPI。

添加或更改的功能

  • X DevAPI: 对 API 进行了以下更改:

    • 删除ModifyStatement.arrayDelete()ModifyStatement.merge()

    • 改名Colletion.find().limit().skip()Colletion.find().limit().offset()

    • 为了简化类层次结构并使类名更好地反映类的功能,进行了以下更改:

      • 该类FindParams已重命名为FilterParams

      • 该类AbstractFindParams已重命名为AbstractFilterParams

      • 该类DocFindParams已重命名为DocFilterParams

      • 该类TableFindParams已重命名为TableFilterParams

      请注意,原始 FilterParams类中的方法已移至新AbstractFilterParams类下。

    (缺陷号 28027459)

  • X DevAPI: Connector/J 现在默认使用同步客户端套接字 (java.net.Socket) 与 MySQL 服务器进行 X 协议连接通信。虽然仍然可以通过设置连接属性来使用异步套接字xdevapi.useAsyncProtocol=true,但不建议这样做,因为这可能会导致 Connector/J 的性能下降。(漏洞 #27522054)

  • X DevAPI: Connector/J 现在提供使用自定义套接字工厂的规定,用于使用 Unix 域套接字的 X 协议连接到 MySQL 服务器。有关详细信息,请参阅第 6.8 节,“使用 Unix 域套接字进行连接”。

  • INFORMATION_SCHEMA.KEYWORDS Connector/J 现在在建立连接会话时 从 MySQL 服务器上的表中检索 MySQL 关键字列表 。然后可以通过调用访问该列表 DatabaseMetaData.getSQLKeywords()

  • 为了简化代码,ReadablePropertyModifiableProperty类已合并到RuntimeProperty类中。

修正错误

  • X DevAPI: 当使用映射而不是连接字符串创建 X DevAPI 会话 、 和Properties属性键会导致. 通过修复,现在可以使用大写和小写。(漏洞#27652379)hostportprotocolNullPointerException

  • X DevAPI:Properties当使用映射而不是连接字符串 创建带有 SSL 连接的 X DevAPI 会话 NullPointerException时,如果未提供连接密码,则会返回 a。(漏洞 #27629553)

  • X DevAPI:在连接 URL 中 使用getConnection()带有mysqlx:方案的方法时,Connector/J 返回普通的 JDBC 连接而不是 X-Protocol 连接。(缺陷号 26089880)

  • 如果wait_timeout在服务器上设置并且 Connector/J 具有连接属性 interactiveClient=false,或者如果 interactive_timeout在服务器上设置并且 Connector/J 具有连接属性 interactiveClient=true,则连接在闲置时间超过设置的超时时间时失效。当发生这样的超时时,Connector/J 抛出一个 CJCommunicationsException,而不表示它是超时。通过此修复,返回的错误消息解释了问题并建议了如何避免它。(缺陷 #27977617,缺陷 #90753)

  • 当一个应用程序试图通过一些 JDBC 驱动程序连接到一个非 MySQL 数据库并且 Connector/J 碰巧也在类路径上时,Connector/J 抛出一个 SQLNonTransientConnectionException,这阻止了应用程序连接到它的数据库。通过此修复,只要连接字符串不是以jdbc:mysql:or 开头,Connector/J 就会返回 null mysqlx:,因此不会阻止与非 MySQL 数据库的连接。(缺陷 #26724154,缺陷 #87600)

  • 对 a的wasNull()调用 ResultSet不会返回正确的值,除非之前调用过AbstractResultsetRow.getNull()or AbstractResultsetRow.getValueFromByte()。当 Connector/J 与 Hibernate 等框架一起使用时,这会导致数据丢失,Hibernate 依赖 wasNull()调用来正确检索数据。通过此修复,wasNull()只要之前已在ResultSet. (漏洞 #25924324,漏洞 #85941)