一般我们在配置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 接收到 放到查询条件的时间 应经不是同一个时间了,所以就导致了查询没有数据的情况发生了.