Documentation Home
MySQL 连接器/J 8.0 发行说明  /  MySQL Connector/J 8.0.9 的变化(2018-01-30,发布候选)

MySQL Connector/J 8.0.9 的变化(2018-01-30,发布候选)

版本 8.0.9 候选发布版是 MySQL Connector/J 8.0 分支的第一个候选发布版,提供了对即将推出的功能的深入了解。它适用于 MySQL 服务器版本 5.5、5.6、5.7 和 8.0。它支持 Java 数据库连接 (JDBC) 4.2 API。

添加或更改的功能

  • X DevAPI: 在完善 X DevAPI 的定义以涵盖最相关的使用场景的过程中,以下 API 组件已从 Connector/J 的 X DevAPI 实现中删除:

    • 支持视图 DDL 的组件,包括 createView()dropView()modifyView()方法。

    • 支持表的 DDLS 的组件,包括 createTable()dropTable()modifyTable()方法。

    • 支持会话配置的组件,包括SessionConfig对象、 PersistenceHandler接口、 PasswordHandler接口和 SessionConfigManager类。

  • X DevAPI:向接口 添加setSavepoint()rollbackTo()releaseSavepoint()方法以 Session支持 SAVEPOINT ROLLBACK TO SAVEPOINTRELEASE SAVEPOINT语句。有关详细信息,请参阅 MySQL 连接器/JX DevAPI 参考

  • X DevAPI:接口中添加了 一个新patch()功能 ModifyStatement。该函数接受一个描述文档更改的类 JSON 对象,并将它们应用于与 modify()过滤器匹配的文档。有关详细信息,请参阅 MySQL 连接器/JX DevAPI 参考

  • X DevAPI:createIndex()接口方法 Collection现在有了新的语法 。有关详细信息,请参阅MySQL Connector/J X DevAPI 参考

  • X DevAPI:在X DevAPI 中增加了以下单文档操作方法:

    • replaceOne()

    • addOrReplaceOne()

    • getOne()

    • removeOne()

    有关详细信息,请参阅MySQL Connector/J X DevAPI 参考

  • X DevAPI: 已为 、 和 类的配置属性添加了 Setters 和 MysqlDataSourcegetters MysqlXADataSource方法 MysqlConnectionPoolDataSource

  • X DevAPI: 连接属性enabledTLSProtocols 现在可用于为到服务器的 X 协议连接选择允许的 TLS 版本。

  • Connector/J 现在支持新的 caching_sha2_password身份验证插件,这是 MySQL 8.0.4 及更高版本的默认身份验证插件(有关详细信息,请参阅 缓存 SHA-2 可插入身份验证)。

    笔记

    caching_sha2_password要使用插件 验证帐户, 必须使用使用 SSL 的服务器安全连接或使用 RSA 密钥对支持密码交换的未加密连接(通过设置一个或两个连接属性allowPublicKeyRetrieval和 启用serverRSAPublicKeyFile)。

    因为 Connector/J 8.0 的早期版本不支持 caching_sha2_password身份验证插件,因此将无法连接到使用新插件进行身份验证的帐户(这可能包括在新安装 MySQL 8.0 服务器期间默认创建的根帐户) ,强烈建议您现在升级到 Connector/J 8.0.9,以帮助确保您的应用程序继续与最新的 MySQL 8.0 服务器顺畅工作。

  • Connector/J 现在通过使连接属性 useInformationSchema默认为真来利用 MySQL Server 8.0 数据字典;这使得 Connector/J 默认情况下通过查询 INFORMATION_SCHEME 中的表更有效地访问数据字典。有关详细信息,请参阅 INFORMATION_SCHEMA 和数据字典集成。用户仍然可以将 useInformationSchema 设置为 false;但对于 MySQL 8.0.3 及更高版本,由于旧数据字典功能的弃用,一些数据字典查询可能会失败。

  • 过去,查询文本总是作为字符串传递给 QueryInterceptor方法,即使这些文本实际上并未被它们使用。现在,仅传递文本的供应商,并且仅通过 get()调用供应商来提取文本。

修正错误

  • connection 属性 nullNamePatternMatchesAll在设置为 false(默认值)时会导致某些 DatabaseMetaData方法在使用空搜索字符串时抛出错误。该行为不符合 JDBC 规范,该规范要求在使用空搜索字符串时忽略搜索条件。连接属性现已从 Connector/J 8.0 中删除。(错误#26846249,错误#87826)

  • 尝试在关闭后PreparedStatement 使用该toString()方法打印查询会导致抛出异常(语句关闭后不允许进行任何操作)。(漏洞 #26748909)

  • 使用 MySQL Server 8.0时,当的主键包含布尔列且使用的字符集不是 时,更新或删除语句CONCUR_UPDATABLE ResultSet失败 。(缺陷号 26266731)ResultSetlatin1

  • Connector/J 无法识别它在与服务器握手期间收到的服务器问候错误,并将错误消息解析为正常的问候数据包,导致 抛出ArrayIndexOutOfBoundsException 。(漏洞 #24924097)