Documentation Home
MySQL 连接器/J 8.0 发行说明  /  MySQL Connector/J 8.0.28 的变化(2022-01-18,全面上市)

MySQL Connector/J 8.0.28 的变化(2022-01-18,全面上市)

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

弃用和移除说明

  • TLSv1 和 TLSv1.1 连接协议已在 Connector/J 8.0.26 中弃用,现在已在此版本中删除。删除的值被视为对连接选项和会话设置无效。可以使用更安全的 TLSv1.2 和 TLSv1.3 协议建立连接。使用 TLSv1.3 需要使用 OpenSSL 1.1.1 或更高版本编译服务器,并使用支持 TLSv1.3 的 JVM(例如,Oracle Java 8u261 及更高版本)运行 Connector/J。

    此外,以下连接属性已重命名:

    • enabledTLSProtocols重命名为 tlsVersions;原始名称保留为别名。

    • enabledSSLCipherSuites重命名为 tlsCiphersuites;原始名称保留为别名。

添加或更改的功能

  • X DevAPI: 文档_id检查已添加到 Collection.addOrReplaceOne(id, doc)Collection.replaceOne(id, doc)方法中​​:如果in id不匹配,则操作失败。(缺陷号 32770013)_iddoc

  • Connector/J 现在支持连接到 MySQL 服务器的多因素身份验证。为此添加了三个新的连接属性 password1password2password3 。有关详细信息,请参阅 使用多因素身份验证进行连接。

修正错误

  • Connector/J 发行版中的README文件在附加资源部分包含损坏的链接。(缺陷号 33507321)

  • 使用批处理 将java.time.LocalDate对象作为值 存储到服务器上失败,投诉无法转换为 。通过此修复,对象被正确编码为一个值。(错误#33468860,错误#105211)DATEPreparedStatementjava.time.LocalDatejava.sql.DateDATE

  • ResultSetabsolute()relative()first()、等导航方法 在应用于不可导航的 时last()返回 a 。这是因为这些方法在尝试导航之前没有检查是否 真的有任何行。此补丁使所有导航方法执行检查并 在没有行时抛出正确的错误。(缺陷号 33461744)NullPointerExceptionResultSetResultSetSQLExceptionResultSet

  • PreparedStatement以 的形式 运行 aINSERT INTO ... VALUE ... ON DUPLICATE KEY UPDATE ... VALUES(...)导致 StringIndexOutOfBoundsException. 这是因为 Connector/J 没有将语句中的 VALUE for 识别为别名,并将 函数 误认为是语句的子句。通过此修复,可以正确解析此类语句。(错误#33425867,错误#84365)VALUESINSERTVALUES()VALUES

  • 当连接会话的字符集为 SJIS 时, BLOB客户端准备好的语句无法正确处理值。(缺陷号 33350185)

  • 一些 Java 框架会阻止 autocommitMySQL 服务器上值的更改。当应用程序尝试更改 autocommit时,客户端的连接值已更改Session ,但在服务器上无法更改,因此设置变得不同步。通过此修复,Connector/J 在这种情况下会重置autocommit为其原始值Session。感谢 Tingyu Wei 为修复做出的贡献。(错误#33054827,错误#104067)

  • getWarnings()总是向服务器发送SHOW WARNINGS查询。通过此修复,仅当确实存在要显示的警告时才发送查询,以节省资源。(错误#32089018,错误#101389)

  • 调用 后Statement.setQueryTimeout(),当达到查询超时时,会建立与服务器的连接以终止查询,但此后连接仍保持打开状态。通过此修复,新连接将在查询终止后关闭。(漏洞 #31189960,漏洞 #99260)

  • 为执行而创建的新会话在 取消Statement.cancel()后仍保持打开状态 。 通过此修复,会话在取消Statement后关闭。Statement(漏洞 #30355150,漏洞 #96900)

  • 在对象上使用该setString()方法 会SQLXML导致 NullPointerException. (漏洞 #25656020,漏洞 #85223)