版本8.0.23是8.0系列MySQL连接器/ j的最新一般可用性发布。它适用于MySQL Server版本8.0和5.7。它支持Java数据库连接(JDBC)4.2 API,并实现X Devapi。
作为一个实施MySQL术语更新,连接属性和公共方法名称已按以下方式调整:
将“master”更改为“源”:例如,连接属性
QueriesBeforeretryMaster.
成为查询伯弗雷特rysource.
和方法IsmasterConnection()
成为issourceconnection()
将“奴隶”更改为“副本”:例如,连接属性
允许拉拉维斯downConnections.
成为allowreplicadownConnections.
和方法getslavehosts()
成为getreplicahosts()
将“黑名单”更改为“BlockList”:例如,连接属性
LoadBalanceBlackListTimeout.
成为loadBalanceBlockListTimeout.
。
旧名称已被弃用 - 虽然它们仍然可以使用,但最终将在将来的发布中删除;因此鼓励用户切换到新名称。
看看MySQL Connector / J 8.0开发人员指南,连接器/ J API文档(由javadoc10bet官方网站生成),以及MySQL连接器/ J X Devapi Reference可用AT.连接器和API.有关任何新属性和方法名称的信息。
重要变化:为用户推出了一种新机制来配置时瞬间将如何发生时刻或通过连接器/ j从服务器检索时的时区转换方式。三个新的连接属性,Preserveinstants.那connectionTimonZone., 和forceConnectionTimeZoneTosession.,控制新机制 - 看到保存时间瞬间有关详细信息。
重要的要保留连接器/ j 8.0.22及更早版本的默认行为,请从服务器查询会话时区,然后在其与JVM时区之间转换时间戳,设置新的连接属性connectionTimonZone.至
服务器
,并以默认值留下其他两个新属性(即,preserveinstants =真实和forceconnectiontimezonetosession = false.)。有的用户servertimezone =
并保持相同的操作,而无需配置新的连接属性,可以期待与以前相同的行为,但建议使用测试。用户定义时区
此外,随着新机制的实施,a
getObject(ColumnIndex)
打电话给A.约会时间
列返回A.localDateTime.
目前对象而不是一个细绳
。接待A.细绳
像之前一样,使用getObject(ColumnIndex,String.Class)
反而。虽然A.
java.sql.time.
实例,根据JDBC规范,不应该通过设计包含分数秒,因为java.sql.time.
是一个包装java.util.date.
,可以在a中存储分数秒java.sql.time.
实例。但是,当连接器/ j插入时java.sql.time.
作为mysql进入服务器时间
值,分数秒始终被截断。允许将要发送到服务器的小数秒数,是一个新的连接属性,sendfractionaleecondsfortime.,已介绍:物业是真的
(这是默认值),分数秒为java.sql.time.
被发送到服务器;否则,分数秒被截断。此外,连接属性sendfrateractionseconds.已更改为全局控制,以便为所有日期时间类型发送分数秒。结果,如果sendfractionalseconds = false.,不论价值如何,不寄出分数秒sendfractionaleecondsfortime.。
(bug#20959249,bug#76775)
Connector / J现在支持以下身份验证方法LDAP可插拔身份验证使用MySQL Enterprise Server:
GSSAPI / Kerberos身份验证方法:一个新的连接属性,ldapeerverhostname.已引入用于在Kerberos密钥分发中心(KDC)中配置的LDAP服务主机主体指定LDAP服务主机主体。查看描述ldapeerverhostname.在里面MySQL Connector / J 8.0开发人员指南有关详细信息。
这
Scram-Sha-256
方法。
存放A.
java.time.localdatetime.
对象作为服务器时间戳
使用批处理的价值准备好
投诉失败了java.time.localdatetime.
不能投入java.sql.timestamp.
。通过这种修复,铸件再次运行。(bug#32099505,bug#101413)使用
setObject()
设置a的方法bytearrayinputstream.
A的实例准备好
导致A.sqlexception.
。(bug#32046007,bug#101242)返回的值为a
时间戳
一个不正确的时候时间间隔表达式用于查询的SQL语句中。(bug#31074051,bug#99013)从Connector / J 5.1到8.0升级后,保存的结果然后检索
约会时间
和时间戳
有时候值变得不同。这是因为默认情况下,连接器/ J 5.1不保留时间即时,默认情况下,Connector / J 8.0.22及更早版本尝试通过将时间戳转换为服务器的会话时区之前,然后将其值发送到服务器之前。在此版本中,介绍了用于控制时区转换的新机制 - 请参阅保存时间瞬间有关详细信息。在此新机制下,通过设置连接属性,保留在此方面的连接器/ J 5.1的默认行为preserveinstants = false.。(bug#30962953,bug#98695,bug#30573281,bug#95644)转换MySQL
约会时间
或者时间戳
对java的价值offsetDateTime.
使用getObject(i,offsetDateTime.class)
方法失败,具有“不支持类型...”错误的“转换”错误。这是因为offsetDateTime.parse()
方法约会时间
和时间戳
值产生了意外的字符串格式。使用此补丁,转换之间offsetDateTime.
和日期
那时间
那约会时间
那时间戳
, 和年
数据类型现在是可能的,并且在转换期间,时间轴上的即时点被保留在转换期间 - 看到保存时间瞬间有关详细信息。(bug#29402209,bug#94457)当服务器的会话时区设置无法通过连接器/ j(例如,它设置为
c
),除非连接器/ j指定正确的IANA时区名称,否则无法使用服务器建立连接servertimezone.
连接属性。即使实际上无需在Connector / j中使用任何日期时间功能,也会发生这种情况。该问题是通过控制日期时间处理的Connector / J的新连接属性来修复。保存时间瞬间有关详细信息。目前正在发生以下情况:如果是新的连接属性connectionTimonZone.设定为
当地的
或指定的时区,时区
不再检查服务器上的变量如果ConnectionTimeZone =服务器,检查
时区
变量延迟,直到首次调用日期时间驱动程序功能,以便无法识别的服务器时区不会阻止要建立连接。但是,何时调用日期时间功能并符合值时区
无法通过连接器/ j识别,抛出异常。
(bug#21789378)