mysql jdbcUrl中的serverTimezone

一般我们在配置mysql数据库的时候

都是四个参数

 driver-class-name: com.mysql.cj.jdbc.Driver
 jdbc-url:  
 username:  
 password: 

这次在开发的时候遇到了一个非常奇怪的问题
在本地测试的时候 好好的,到测试环境上面就取不到数据,多次检查下来 感觉到是jdbc 的url 出现了问题,
在navicat中可以查到数据,但是通过java代码就是不可以查到数据.

jdbc 的url 是可以在后面添加参数的

一般的参数都是如下:

 useUnicode=true&characterEncoding=utf8

就是简单的指定下连接的字符集

,通过多次调试 ,对比最终发现,是因为一个参数的原因导致的

在jdbcurl 后面加上下面的参数即可:

serverTimezone=PRC

分析:

为什么之前就查不到数据了?一加上这个后缀就可以查到

因为我的sql 中有类似于 where time=xxx ,如果不加上上面的这个参数,mysql把接收到的时间数据转换一下,
也就是说你传过去的时间跟 mysql 接收到 放到查询条件的时间 应经不是同一个时间了,所以就导致了查询没有数据的情况发生了.

你可能感兴趣的:(mysql)