世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。
这是我在昨天产品升级时遇到的实际问题 :
1. 我设置了一个定时,以天为单位取当天的数据,
连接是这样配置的 :
jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2B8
2. 在升级时,发现取出的数据是乱码,由于数据库是共用的,所以不能在数据库中修改编码格式,
只能在连接中指定 :
jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf-8
3. 而这时问题又来了,取出的数据为空,我特意查了系统时间,显示是当天没错,
但是就是取不出数据,我想可能和时区有关,
于是又加上了时区的指定 :
jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2B8&characterEncoding=utf-8
5. 这时数据可以正常显示
完整配置如下 :
spring :
datasource :
url : jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2B8&characterEncoding=utf-8
username : root
password : root
driver-class-name : com.mysql.cj.jdbc.Driver
总结 :
1. 问题不大,但花了2个多小时
2. 指定时区很重要,千万别忽视