Documentation Home
MySQL 连接器/J 8.0 发行说明  /  MySQL Connector/J 8.0.27 的变化(2021-10-19,全面上市)

MySQL Connector/J 8.0.27 的变化(2021-10-19,全面上市)

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

添加或更改的功能

  • ResultSet.getBoolean()方法现在 为T / F的 值 返回true/ 。(缺陷号 33185116)falseVARCHAR

  • 根据良好的 XML 实践, getSource()方法 MysqlSQLXML不再支持 XML 源中的外部 DTD、外部通用实体和外部通用参数。(缺陷号 33094420)

  • 为了与 Java 的其他实现兼容, TLS_已从 TlsSettings.properties文件中的密码套件名称中删除后缀,并将 TLS_SSL_前缀添加到 对象ALLOWED_CIPHERS列表中 的密码套件名称中。ExportControlled(缺陷号 31117686)

  • 方法中的同步 MultiHostConnectionProxy#invoke()强制连接池等待语句完成执行,然后才能提供新的或空闲的连接,这在某些情况下会产生性能问题。是因为同步导致多线程调用该 equals()方法被阻塞。这个补丁重组了同步以避免锁定像 equals()和这样的无处不在的方法toString()。(漏洞#28725534)

  • Connector/J 现在支持对使用该authentication_oci插件创建的 MySQL 用户进行身份验证。有一个新的连接属性 ociConfigFile~/.oci/config ,用于在类 Unix 系统和 %HOMEDRIVE%%HOMEPATH%\.oci\configWindows 系统的默认位置找不到所需的 OCI SDK 和客户端配置文件的位置(其中~%HOMEPATH%代表运行应用程序的用户)。

  • Connector/J 测试套件经过重新设计,可以针对使用 yaSSL 或 OpenSSL 编译的单个 MySQL 服务器运行 ;Ant 构建属性com.mysql.cj.testsuite.url.opensslcom.mysql.cj.testsuite.mysqlx.url.openssl 现在被忽略了。

修正错误

  • 该方法DatabaseMetaData.getImportedKeys() 有时会为同一个外键返回多行。(错误#33237255,错误#104641)

  • cacheServerConfiguration启用并且后续连接配置了不同的字符集选项时,将字符串插入表中会导致 Incorrect string value服务器出错。这是因为 Connector/J 重用的缓存字符集信息是可变的,这个补丁解决了这个问题。(漏洞 #29807572)

  • ResultSet.getObject(columnIndex, java.util.Date.class)预期返回 null 时,它会导致 Connector/J 抛出 a NullPointerException。(错误#104559,错误#33232419)

  • 在将 aCalendar作为参数传递给ClientPreparedStatementset 方法后, SimpleDateFormat用于呈现参数值的对象实际上修改了 Calendar,因此使用同一个 Calendar对象和多个 set 方法有时会导致设置错误的日期或时间。通过此修复,在创建对象时将其 克隆Calendar传递给对象,以避免更改原始. 感谢 Björn Michael 对修复的贡献。(缺陷 #104170,缺陷 #33064455)SimpleDateFormatCalendar

  • 使用基于游标的提取 ( useCursorFetch=true) 时, SHOW语句EXPLAIN 失败并带有SQLException. (缺陷 #103878,缺陷 #32954449)

  • setQueryTimeout()当游标用于获取行 ( useCursorFetch=true) 时,未能为查询设置超时。感谢 Hong Wang 贡献修复。(错误#103796,错误#32922715)

  • 当连接属性 createDatabaseIfNotExist设置为 true 时,如果名称中包含连字符,则无法创建不存在的数据库。感谢 Lukasz Sanek 贡献修复。(缺陷 #95564,缺陷 #29894324)

  • 调用时Statement.executeQuery(),Connector/J 对语句是否会返回结果的检查不充分,因此有时会拒绝适当的语句(例如,以子句SELECT开头的WITH语句、前面有连续注释的语句等),而在其他时候,执行了不适当的语句(例如, DO陈述),导致各种错误。通过此修复,Connector/J 通过查看语句关键字和上下文以及正确处理不同的极端情况来执行更准确的检查。在这种新机制中,Connector/J 采用了一种宽松的方法:允许运行可能返回结果的语句。(错误#71929、错误#18346501、错误#103612、错误#32902019、错误#23204652)