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

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot配置MySQLserverTimezone可以通过在application.properties或application.yml文件添加以下配置实现: 对于application.properties文件: ``` spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase?serverTimezone=Asia/Shanghai ``` 对于application.yml文件: ``` spring: datasource: url: jdbc:mysql://localhost:3306/mydatabase?serverTimezone=Asia/Shanghai ``` 在这里,serverTimezone属性设置了MySQL的时区为Asia/Shanghai。根据引用和引用的说明,serverTimezone属性设置会覆盖MySQL的time_zone变量,并确保Spring Boot会话的时区为东8区(Asia/Shanghai)。 此外,还可以使用系统的默认时区作为MySQL的时区设置。根据引用,time_zone属性默认为System,即追随系统的时区设置。这意味着如果不显式地设置serverTimezone属性,MySQL将使用系统的默认时区作为服务器时区。 以上是关于在Spring Boot配置MySQLserverTimezone的方法。请根据您的具体需求选择适合的方式进行配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [SpringBoot mysql 时区问题总结](https://blog.csdn.net/zjy660358/article/details/117701956)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值