MySQL Connector/J 8.0版本说明/ MySQL Connector/J 8.0.17(2019-07-22,通用可用性)

MySQL Connector/J 8.0.17(2019-07-22,通用可用性)

8.0.17版本是MySQL Connector/J 8.0系列的最新通用可用版本。它适用于MySQL Server 8.0、5.7和5.6版本。它支持JDBC (Java Database Connectivity) 4.2 API,实现X DevAPI。

增加或更改的功能

  • X DevAPI:以下方法已弃用:

    • Collection.find()。()

    • Collection.modify()。()

    • Collection.remove()。()

  • X DevAPI:JSON对象和数组的两个新操作符,重叠而且不重叠,现在支持。

  • X DevAPI:现在支持对数组字段进行索引。看到索引数组字段X DevAPI用户指南获取详细信息。

  • 自述而且许可证文件现在包含在独立于平台的tarball和zip文件中交付的Connector/J JAR归档文件中。(错误# 29591275)

  • 的许多私有参数ProfilerEvents(例如,主机名)没有从类实例外部访问它们的getter。现在已经为该类的所有参数添加了Getter方法。(Bug #20010454, Bug #74690)

  • 一个新的连接属性,databaseTerm,设置在应用程序中使用这两个术语中的哪一个来指代数据库。该属性接受这两个值中的一个目录模式然后用它来判断连接方法可用于设置/获取当前数据库,其参数可在各种DatabaseMetaData方法来筛选结果,以及结果集返回的DatabaseMetaData方法包含数据库标识信息。请参阅databaseTerm配置属性获取详细信息。

    还有连接属性nullCatalogMeansCurrent已改名为nullDatabaseMeansCurrent.旧的名称仍然是连接属性的别名。

    感谢Harald Aamot对补丁的贡献。(Bug #11891000, Bug #27356869, Bug #89133)

  • 一个新的贡献文件已添加到GitHub上的连接器/J库,为代码贡献和错误报告提供指导。

  • MySQL Connector/J X DevAPI Reference现在可以从Connector/J源代码中生成作为Ant目标,xdevapi-docs

  • 增加了对超过60个字符(最多255个字符)的主机名的支持,MySQL Server 8.0.17现在支持这些主机名。

  • 添加了对utf8mb4_0900_binMySQL Server 8.0.17现在支持collation。

  • 缓存的服务器端预处理语句不能再通过调用有效地关闭Statement.close ()两次。要关闭并去缓存该语句,请执行以下操作之一:

    • 关闭连接(假设连接正在跟踪所有打开的资源)。

    • 使用特定于实现的方法JdbcPreparedStatement.realClose()。

    • 通过调用该方法,将语句设置为不可池Statement.setPoolable(假)在关闭之前或之后。

错误修复

  • X DevAPI:在X个DevAPI表达式中,当后面跟着一个方括号(),映射到X协议中的错误操作。(错误# 29821029)

  • 在使用复制连接时,从BlobFromLocator导致了ClassCastException.这是由于一些错误和不必要的铸造,这已经被这个修复删除了。(Bug #29807741, Bug #95210)

  • ResultSetMetaData.getTableName ()当不能为列返回适用的结果时返回null。但是,JDBC文档在这种情况下指定了10bet官方网站要返回的空字符串。此修复使该方法的行为与文档中描述的一致。也作了同样的修正getCatalogName ()而且getSchemaName ().(Bug #29452669, Bug #94585)

  • ResultSetImpl.getObject (),当自动对从列检索的基元类型的值进行装箱时,当检索的值为空时返回一个非空对象。(Bug #29446100, Bug #94533)

  • ResultSetImpl.getDouble ()效率很低,因为它叫FloatingPointBoundsEnforcer.createFromBigDecimal,这是不必要的再创造BigDecimal对象用于固定的最小和最大边界。有了这个修复,对象BigDecimal.valueOf(分钟)而且BigDecimal.valueOf (max)在第一次创建它们之后缓存,从而避免重新创建它们。(Bug #29446059, Bug #94442)

  • 启用logSlowQueries导致了许多不必要的调用LogUtils.findCallingClassAndMethod ().有了这个修复,LogUtils.findCallingClassAndMethod ()仅当profileSQL是正确的,即使在这种情况下,调用的数量也会减少到最小,以避免函数用于生成的堆栈跟踪数据过多。感谢Florian Agsteiner对修复的贡献。(Bug #29277648, Bug #94101, Bug #17640628, Bug #70677)

  • 返回的字符结果集当服务器端出现乱码PreparedStatement,并且查询涉及到一个数字和一个多字节字符的字符串的连接。这是由于涉及到的数字到字符串转换的一个问题,这个问题已经通过这个补丁得到了纠正。(错误# 27453692)

  • 调用ProfilerEvent.pack ()导致了ArrayIndexOutOfBoundsException.这是由于数据类型的错误处理,已通过此修复程序纠正。(Bug #11750577, Bug #41172)