插入mysql数据库时间相差14个小时

背景:

spring cloud 开发web项目,数据库:mysql 持久性框架:mybatis

问题:

前一段时间遇到这么一个问题:新增数据时,datatime类型的数据插入到mysql数据库后时间相差14个小时(数据库数据比当前时间少14个小时)。

排查:

1、程序在入库前没有做任何特殊处理
2、检查系统时区:CST
3、检查数据库时区:CST(没有修改的话一般都是系统时区)
造成这种问题的原因是因为高版本jdbc导致的问题,高版本的jdbc底层驱动程序对从数据库查询出来的时间用了一个Calender做类型转换,Calender记录中包含的时区导致差了14小时。(引用自:https://www.cnblogs.com/bignode/p/9310893.html)

解决:

有两种方式解决此问题
方式一:在配置文件的jdbc的url上面手动设置了serverTimezone=CST(保持和操作系统和数据库一致的时区,不管哪里的时区只要保持一致就可以喽)
方式二:修改pom文件的spring-boot版本和spring-cloud版本,比如


		org.springframework.boot
		spring-boot-starter-parent
		2.0.2.RELEASE
		 


		1.8
		Finchley.RC1

这样就自动引入5.1.46版本的jdbc驱动,就不会出现相差14个小时的问题啦

你可能感兴趣的:(Java,微服务,Spring,Cloud,Spring,boot)