连接池均使用 ali druid (com.alibaba:druid:1.1.9/ com.alibaba:druid:1.0.26)
阿里云 RDS mysql 5.6 数据库默认时区东8区
jdbc驱动: mysql-connector-java:5.1.47
ORM spring data JPA
连接池配置
spring.datasource.druid.admin.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.druid.admin.url=jdbc:mysql://host/db?useUnicode=true&characterEncoding=utf-8&supportBigNumbers=true
环境 CentOS 7 操作系统时区 东8区 jdk 1.8.0_201-b09
spring boot 1.5.18
taos 客户端 3.2.2.0 jdbc 版本 3.2.7
连接池均使用 ali druid (com.alibaba:druid:1.1.9/ com.alibaba:druid:1.0.26)
阿里云 RDS mysql 5.6 数据库默认时区东8区 jdbc驱动: mysql-connector-java:5.1.47 ORM spring data JPA 连接池配置 spring.datasource.druid.admin.driver-class-name=com.mysql.jdbc.Driver spring.datasource.druid.admin.url=jdbc:mysql://host/db?useUnicode=true&characterEncoding=utf-8&supportBigNumbers=true
taos 连接池配置 没有使用ORM, 直接操作 spring.datasource.druid.taos.driver-class-name=com.taosdata.jdbc.TSDBDriver spring.datasource.druid.taos.url=jdbc:TAOS://:/?locale=UTF-8&charset=UTF-8&timezone=UTC
taos数据库的写入采用拼接sql字符串的方式,spring JDBCTemplate#update(sql),没有使用ORM
现象: MySQL数据库的某个数据表字段类型 DATETIME
Java 实体对应字段类型(2个类型都测试过)java.util.Date 或者 org.joda.time.LocalDateTime 存入MySQL数据库时,时间会晚8小时,
如果 把taos jdbc 3.2.7驱动 的数据库连接串中的 timezone=UTC 去掉, 则MySQL数据库 DATETIME 写入正常
如果用taos jdbc 3.1.0驱动, timezone=UTC可以存在且不影响MySQL的写入。
该Java实体:从未向TDengine写入或读取, 即不对应TDengine中的表,只对应MySQL的表
另一个环境是 spring boot 2.4.0, jdk 8, jdbc驱动:mysql-connector-java:8.0.22 driver-class-name=com.mysql.cj.jdbc.Driver url= jdbc:mysql://host/db?serverTimezone=CTT&useUnicode=true&characterEncoding=utf-8&supportBigNumbers=true taos jdbc url 中也有 timezone=UTC mysql 连接串中有 serverTimezone=CTT结果时间早8小时。 如果taosjdbc驱动换成3.1.0则时间正常