版本 8.0.12 是 8.0 系列 MySQL Connector/J 的最新通用版本。它适用于 MySQL 服务器版本 8.0、5.7、5.6 和 5.5。它支持 Java 数据库连接 (JDBC) 4.2 API,并实现了 X DevAPI。
-
X DevAPI: 对 API 进行了以下更改:
删除
ModifyStatement.arrayDelete()
和ModifyStatement.merge()
。改名
Colletion.find().limit().skip()
为Colletion.find().limit().offset()
。-
为了简化类层次结构并使类名更好地反映类的功能,进行了以下更改:
该类
FindParams
已重命名为FilterParams
该类
AbstractFindParams
已重命名为AbstractFilterParams
该类
DocFindParams
已重命名为DocFilterParams
该类
TableFindParams
已重命名为TableFilterParams
请注意,原始
FilterParams
类中的方法已移至新AbstractFilterParams
类下。
(缺陷号 28027459)
X DevAPI: Connector/J 现在默认使用同步客户端套接字 (
java.net.Socket
) 与 MySQL 服务器进行 X 协议连接通信。虽然仍然可以通过设置连接属性来使用异步套接字xdevapi.useAsyncProtocol=true
,但不建议这样做,因为这可能会导致 Connector/J 的性能下降。(漏洞 #27522054)X DevAPI: Connector/J 现在提供使用自定义套接字工厂的规定,用于使用 Unix 域套接字的 X 协议连接到 MySQL 服务器。有关详细信息,请参阅第 6.8 节,“使用 Unix 域套接字进行连接”。
INFORMATION_SCHEMA.KEYWORDS
Connector/J 现在在建立连接会话时 从 MySQL 服务器上的表中检索 MySQL 关键字列表 。然后可以通过调用访问该列表DatabaseMetaData.getSQLKeywords()
。为了简化代码,
ReadableProperty
和ModifiableProperty
类已合并到RuntimeProperty
类中。
X DevAPI: 当使用映射而不是连接字符串创建 X DevAPI 会话 、 和
Properties
属性键会导致. 通过修复,现在可以使用大写和小写。(漏洞#27652379)host
port
protocol
NullPointerException
X DevAPI:
Properties
当使用映射而不是连接字符串 创建带有 SSL 连接的 X DevAPI 会话NullPointerException
时,如果未提供连接密码,则会返回 a。(漏洞 #27629553)X DevAPI:在连接 URL 中 使用
getConnection()
带有mysqlx:
方案的方法时,Connector/J 返回普通的 JDBC 连接而不是 X-Protocol 连接。(缺陷号 26089880)如果
wait_timeout
在服务器上设置并且 Connector/J 具有连接属性interactiveClient=false
,或者如果interactive_timeout
在服务器上设置并且 Connector/J 具有连接属性interactiveClient=true
,则连接在闲置时间超过设置的超时时间时失效。当发生这样的超时时,Connector/J 抛出一个CJCommunicationsException
,而不表示它是超时。通过此修复,返回的错误消息解释了问题并建议了如何避免它。(缺陷 #27977617,缺陷 #90753)当一个应用程序试图通过一些 JDBC 驱动程序连接到一个非 MySQL 数据库并且 Connector/J 碰巧也在类路径上时,Connector/J 抛出一个
SQLNonTransientConnectionException
,这阻止了应用程序连接到它的数据库。通过此修复,只要连接字符串不是以jdbc:mysql:
or 开头,Connector/J 就会返回 nullmysqlx:
,因此不会阻止与非 MySQL 数据库的连接。(缺陷 #26724154,缺陷 #87600)对 a的
wasNull()
调用ResultSet
不会返回正确的值,除非之前调用过AbstractResultsetRow.getNull()
orAbstractResultsetRow.getValueFromByte()
。当 Connector/J 与 Hibernate 等框架一起使用时,这会导致数据丢失,Hibernate 依赖wasNull()
调用来正确检索数据。通过此修复,wasNull()
只要之前已在ResultSet
. (漏洞 #25924324,漏洞 #85941)