在Springboot项目中配置TD库信息,总是报数据库异常的错:Caused by: java.lang.ClassNotFoundException: com.taosdata.jdbc.rs.RestfulDriver

1.首先远程服务器TD库的版本是3.2.0
2.在本地Springboot2.7的项目里,pom.xml引用的是:

<dependency>
  <groupId>com.taosdata.jdbc</groupId>
  <artifactId>taos-jdbcdriver</artifactId>
  <version>3.2.0</version>
  </dependency>

3.在yaml文件中数据库的配置信息如下:

spring:
  autoconfigure:
    exclude:
      - com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
  datasource:
    druid:
      web-stat-filter:
        enabled: true
      stat-view-servlet:
        enabled: true
        allow:
        url-pattern: /druid/*
        login-username:
        login-password:
      filter:
        stat:
          enabled: true
          log-slow-sql: true
          slow-sql-millis: 100
          merge-sql: true
        wall:
          config:
            multi-statement-allow: true
    dynamic:
      druid:
        initial-size: 5
        min-idle: 10
        max-active: 20
        max-wait: 600000
        time-between-eviction-runs-millis: 60000
        min-evictable-idle-time-millis: 300000
        max-evictable-idle-time-millis: 900000
        validation-query: SELECT 1
        test-while-idle: true
        test-on-borrow: false
        test-on-return: false
      primary: master
      datasource:
        master:
          name: testmqqt
          url: jdbc:mysql://10.2.2.110:3307/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true
          username: aaa
          password: bbb
        hjtd:
          type: com.alibaba.druid.pool.DruidDataSource
          driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
          url: jdbc:TAOS-RS://10.2.2.160:6041/test_iot?timezone=Asia/Beijing&charset=utf-8
          username: abc
          password: abcde
          druid:
            validation-query: SELECT SERVER_STATUS()

问题如下:
每次启动项目,都会报错:
java.sql.SQLException: com.taosdata.jdbc.rs.RestfulDriver
Caused by: java.lang.ClassNotFoundException: com.taosdata.jdbc.rs.RestfulDriver

可以先参考下demo

驱动问题好了,现在遇到了新问题是:

hjtd:
   type: com.alibaba.druid.pool.DruidDataSource
   driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
   url: jdbc:TAOS-RS://10.2.2.160:6041/test_iot?timezone=Asia/Beijing&charset=utf-8
   username: abc
   password: abcde
   druid:
     validation-query: SELECT SERVER_STATUS()

如果配置了数据源的有效性检查validation-query: SELECT SERVER_STATUS(),启动Springboot程序时会报错:TDengine ERROR (0xb): sql: select server_status(), desc: Unable to establish connection

如果去掉这个select server_status()数据源的有效性检查配置:validation-query: "",程序就能正常运行连接。

这是什么情况,我查阅很多例子帖子,别人在使用select server_status()都没问题。

我在本地CMD使用crul测试的时候,同样遇到这样的问题:

在cmd中执行 curl -L -u abc:abcde -d "select * from test_iot.test2025041800001 h limit 10" http://10.2.2.160:6041/rest/sql/test_iot执行就没问题,正常返回查询结果;

但如果执行curl -L -u abc:abcde -d "select server_status()" http://10.2.2.160:6041/rest/sql/test_iot 就会报错: {"code":11,"desc":"Unable to establish connection"}

SELECT SERVER_STATUS()换成SHOW DATABASES就可以,所以是不是TD不支持SELECT SERVER_STATUS()?服务器上使用的TD3.2.0版本

此话题已在最后回复的 180 天后被自动关闭。不再允许新回复。