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

MySQL Connector/J 8.0.20 的变化(2020-04-27,全面上市)

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

添加或更改的功能

  • X DevAPI: Connector/J 现在支持 X 协议连接的数据压缩。有关详细信息,请参阅 使用 X DevAPI 的连接压缩。

  • 一个新方法,getElapsedTime()已添加到Statement Connector/J 中的接口实现中,以公开查询的经过时间。感谢 Matti Sillanpää 贡献代码。(漏洞 #30570249,漏洞 #97714)

修正错误

  • 当在 aCalendarsetDate方法 中使用自定义时PreparedStatement,它被不使用相同日历的相同方法的后续调用使用,导致设置了错误的日期。这是因为SimpleDateFormat使用自定义日历在内部创建的对象被缓存和重用。通过此修复,不再缓存该对象。(缺陷号 30877755)

  • clientInfoProvider在不使用完全限定类名的情况下 设置连接属性 会ClientInfoProviderSP 导致NullPointerException. 这是由于某些错误的异常处理所致,此修复程序已更正该错误。(缺陷号 30832513)

  • 当客户端尝试连接到使用 Windows 身份验证插件和 Kerberos 协议的服务器时,身份验证失败。这是因为 NativeAuthenticationProviderConnector/J 类的实现没有与定制的 Kerberos 身份验证插件正确交互,这个补丁修复了这个问题。(缺陷号 30805426)

  • ResultSetUtilConnector/J 8.0.20 中不再使用类中的 方法;因此该类已被删除。(缺陷号 30636056)

  • NullPointerException当连接完成cacheResultSetMetadata=true 并执行包含任何SET语句的查询时返回 A。此修复程序通过添加缺少的变量赋值和空值检查来更正此问题。(漏洞 #30584907,漏洞 #97757)

  • DataConversionException当应用程序试图存储以“d”开头的字符串时抛出 A。[d 是任何数字] 到VARCHAR列中。这是由于 中的解析错误, AbstractNumericValueFactory此补丁已修复该错误。感谢 Nick Pollett 贡献代码。(缺陷 #30570721,缺陷 #97724)

  • 创建 时Statement,不遵守参数规范resultSetType,因此ResultSet类型始终设置为ResultSet.TYPE_FORWARD_ONLY。通过此修复,resultSetType现在可以使用该参数。此外,还添加了类型验证,以便在类型为时调用方法beforeFirst, afterLast, first, last, absolute, relativeprevious 导致异常。(缺陷号 30474158)ResultSetResultSet.TYPE_FORWARD_ONLY

  • Calendar不使用 a 时, java.sql.Date值不能始终一致地存储到 MySQL 服务器中,然后从中检索。这是因为 Connector/J 在将 Date值作为 MySQL 存储在服务器上时总是将值转换为服务器的时区DATE;但由于 MySQLDATE没有任何时间值,原始日期的小时、分钟和秒部分实际上丢失了。如果转换后的值比原值早一天或晚一天,通过Connector/J取值并转换回本地时区时,没有将日期调回原值的时间值,导致一天的错误。有了这个修复,任何 Datevalue 使用JVM 的时区转换为MySQL DATE值,因此该值在存储和读回时始终保持一致。

    此外,cacheDefaultTimezone以前从 Connector/J 8.0 中删除的连接属性现在已恢复,因此当它设置为 时false,Connector/J 会在运行时意识到 JVM 的时区更改,并使用更新后的时区转换日期。(漏洞 #28125069,漏洞 #91112)