Documentation Home
MySQL 连接器/J 8.0 发行说明  /  MySQL Connector/J 8.0.16 的变化(2019-04-25,全面上市)

MySQL Connector/J 8.0.16 的变化(2019-04-25,全面上市)

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

添加或更改的功能

  • X DevAPI: 添加BigIntegerBigDecimalCharacter as 受支持的类,这些类的实例可以作为参数传递给 X DevAPITable语句。当应用程序尝试传递不受支持的类的实例时,还使错误消息更加清晰。(漏洞#25650912)

  • X DevAPI: Connector/J 现在支持为 X 协议连接发送 连接属性(应用程序可以在连接时传递给服务器的键值对)的能力。Connector/J 定义 了一组默认属性,可以禁用或启用。此外,除了默认属性之外,应用程序还可以指定要传递的属性。默认行为是发送默认属性集。有关详细信息,请参阅新配置属性 xdevapi.connect-attributes的说明。

    笔记

    客户端发送的连接属性数据的总大小受 performance_schema_session_connect_attrs_size 服务器变量值的限制。数据包的总大小应小于服务器变量的值,否则属性数据将被截断。

  • X DevAPI: 当使用 X DevAPI 时,重复执行(两次或更多次)的语句的性能通过在第二次和后续执行中使用服务器端准备好的语句来提高。有关详细信息,请参阅 X DevAPI 用户指南中的 使用准备好的语句

  • 版本号已从 Connector/J 的 RPM 包中的 Connector/J JAR 存档的名称中删除。这使得使用 RPM 包升级 Connector/J 变得更加容易。(漏洞 #29384853)

  • 排序规则utf8mb4_zh_0900_as_cs已添加到CharsetMapping类中。(漏洞 #29244101)

  • 以下第三方库已从 Connector/J 的分发包中删除:

    • 适用于 Java 的 Google protobuf(使用 X DevAPI 和从源代码构建 Connector/J 时需要)

    • C3P0(从源代码构建连接器/J 需要)

    • JBoss 通用 JDBC 包装器(从源代码构建 Connector/J 时需要)

    • Simple Logging Facade API(使用 Connector/J 的 org.slf4j.Logger.Slf4JLogger 默认实现提供的日志功能,以及从源代码构建 Connector/J 时需要)

    需要这些库的用户必须自己获取它们。有关详细信息,请参阅从二进制分发版安装 Connector/J从源代码安装

修正错误

  • X DevAPI: 该方法unquoteWorkaround()已从ExprParser类中删除,因为不再需要解决方法,并且在某些情况下它实际上会产生错误的结果。(漏洞 #29257922)

  • X DevAPI: 当 JSON 文档仅包含一个值为空数组的字段时,Connector/J 抛出错误。通过此修复,Connector/J 现在将其视为有效的 JSON 文档。(缺陷 #28834959,缺陷 #92819)

  • X DevAPI: 对该数据类型getByte()的表列的调用失败BINARY这是由于字符串转换问题,已通过此修复程序得到纠正。(缺陷号 25650385)

  • X DevAPI: 过程调用失败后发送的任何语句都会导致 Connector/J 挂起。这是因为在调用失败后,Connector/J 并不知道结果流送器已经被服务器关闭了。通过此修复,当过程调用失败时会引发错误,并且结果流送器无效。(缺陷号 22038729)

  • X DevAPI: 表达式中的一元负运算符和正运算符被错误地解析为二元减号和加号运算符。(漏洞 #21921956)

  • 因为SHOW PROCESSLIST语句有时可能导致服务器失败,Connector/J 现在避免使用该语句,而是查询性能方案以获取它需要的信息。(缺陷号 29329326)

  • Connector/J 日志中删除了一些不必要的信息。(漏洞 #29318273)

  • DatabaseMetaDataUsingInfoSchema 接口中,getProcedureColumns()and getFunctionColumns()方法返回错误的PRECISION列结果, getColumns()and getVersionColumns()方法返回错误的COLUMN_SIZE列结果。错误是由于 Connector/J 对时间类型精度的错误处理,现已修复。(漏洞 #29186870)

  • 对于SSL连接,客户端通过调用与服务器断开连接后Connection.close(),TCP连接在服务器端一直处于 TIME_WAIT 状态。 通过此修复,在大多数情况下,连接在客户端保持在 TIME_WAIT状态。(缺陷 #29054329,缺陷 #93590)

  • 该函数 LoadBalancedConnectionProxy.getGlobalBlacklist() 总是返回一个空映射,因此从来没有负载平衡连接的黑名单。(缺陷 #28860051,缺陷 #93007)

  • 冗余文件changelog.gz已从 Connector/J 的 Debian 9 软件包中删除。该文件重复了文件的内容CHANGES.gz 。(漏洞#27786499)

  • 使用getBytes()检索 TEXT数据导致 NumberFormatException. 通过此修复,SQLDataException现在会抛出正确的异常 ( )。(漏洞#27784363)

  • 当连接的配置属性设置 changeUser()为时,调用失败并显示 。(漏洞 #25642021)java.io.IOExceptionenablePacketDebugtrue

  • bindings.getBoolean()总是返回错误。这是由于数据类型处理不当造成的,已通过此修复程序得到纠正。(漏洞 #22931700)