评论

收藏

[Java] Java timezone设置和mybatis连接数据库时区设置方式

编程语言 编程语言 发布于:2021-12-26 21:15 | 阅读数:256 | 评论:0

这篇文章主要介绍了Java timezone设置和mybatis连接数据库时区设置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
Java timezone设置和mybatis连接数据库时区设置
JVM时区设置
springboot工程运行时,需要指定时区,这样获取的时间才会和系统时间相同。以下介绍方法:
1.查看当前时区
centos7以前(不含centos7)
cat /etc/sysconfig/clock
DSC0000.png

centos7以后(包含centos7)
timedatectl
DSC0001.png

在启动jar包的时候指定-Duser.timezone即可。举例:
nohup java -Xms1024m -Xmx10240m -Xmn3840m -Xss512k -Djava.io.tmpdir=./tmp-jar -Duser.timezone=Asia/Shanghai $JAR_NAME >/dev/null 2>&1 &
Mybatis
连接MYSQL数据库时需要指定时区,这样查出来的时间和数据库中的时间才会一致。
具体操作:
spring.datasource.druid.url=jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useSSL=false&zeroDateTimeBehavior=convertToNull&useLegacyDatetimeCode=false
注意这里的 serverTimezone=Asia/Shanghai
这里使用的是阿里的druid连接池。

Mybatis timezone问题
Mybatis 连接报错
The server time zone value ‘中龚病括骸良省兰' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
解决方法
在配置文件中的连接字符串添加serverTimezone=GMT%2B8
<property name="url" value="jdbc:mysql://localhost:3306/database?useSSL=true&amp;useUnicode=true&amp;characterEncoding=utf8&amp;serverTimezone=GMT%2B8"/>
以上为个人经验,希望能给大家一个参考,也希望大家多多支持CodeAE代码之家
原文链接:https://enjoy-day.blog.csdn.net/article/details/109044134

关注下面的标签,发现更多相似文章