spring配置文件中数据库配置serverTimeZone设置的作用

spring配置文件中数据库配置serverTimeZone设置的作用,第1张

serverTimeZone设置的作用:就是告诉web应用,数据库服务的时区是什么。
如果不在application配置文件中设置serverTimeZone的话,那么会在第一次连接数据库的时候,获取数据库设置的serverTimeZone,如果数据库没有设置serverTimeZone则数据库会报错

1.创建数据库连接时

jdbc会先尝试和数据库创建链接,创建链接之后,数据库会返回数据库的system_time_zone和time_zone设置,然后去取jdbc url中的serverTimezone配置,如果该配置不为空,则会优先将url中的serverTimezone设置为当前数据库连接会话的数据库时区。

2.对Date类型的数据进行 *** 作时

jdbc会根据serverTimeZone自动将时间转换成数据库端的时间后放入到数据库中,取的时候会根据serverTimeZone自动将数据库中的时间转换成jdbc服务端的时间
例子:

服务器时区:UTC+8时区
serverTimeZone:UTC+0时区
1.这时候在代码中插入一个10:00的时间到数据库,jdbc会根据serverTimeZone=UTC+0,比服务器慢8个小时,所以插入到数据库的时间是10:00-8:00=2:00

注意:以上的设置都只是针对Date类型的数据的分析,由于JDK8新增了LocalDateTime类型的数据,serverTimeZone对LocalDateTime类型的数据分析见另一篇 记一次JAVA问题排查:查询出来的LocalDateTime类型时间不受serverTimezone影响

参考引用:https://www.jb51.net/article/187086.htm
https://blog.csdn.net/qq_38340601/article/details/104722575

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/735816.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存