java-TDengine springboot

本文介绍如何在SpringBoot项目中集成TDengine数据库,包括依赖配置、连接参数设置及SQL查询示例。涵盖多数据源配置和分页查询实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可视化工具地址

https://gitee.com/muxuezhiying/TDengineGUI.git

taos //登录数据库

SELECT * FROM sensor.t1;//查询数据(库.表)

单独集成

		<dependency>
			<groupId>com.taosdata.jdbc</groupId>
			<artifactId>taos-jdbcdriver</artifactId>
			<version>2.0.36</version>
		</dependency>
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>3.0.6</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid-spring-boot-starter</artifactId>
			<version>1.1.18</version>
		</dependency>

spring:
  datasource:
    driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
    url: jdbc:TAOS-RS://xxx:6041/sensor?timezone=UTC-8&charset=UTF-8&locale=en_US.UTF-8
    username: root
    password: taosdata
    druid:
      initial-size: 5
      min-idle: 5
      max-active: 5
      max-wait: 30000
      validation-query: select server_status();

使用:

    <select id="selectList" parameterType="KitHistoryReq" resultMap="equipmentMap">
        select time, pressure,  temperature, level
        FROM ${name}
        <where>
            <if test="startDate!=null"> and time &gt;= #{startDate} </if>
            <if test="endDate!=null"> and time &lt;= #{endDate} </if>
        </where>
         order by time desc
    </select>

多数据源中

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.5.0</version>
        </dependency>
spring:
    # 配置数据源信息
    datasource:
        dynamic:
            # 设置默认的数据源或者数据源组,默认值即为master
            primary: master
            # 严格匹配数据源,默认false.true未匹配到指定数据源时抛异常,false使用默认数据源
            strict: false
            datasource:
                master:
                    url: jdbc:mysql://xxx:3306/edgex_server?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                    driver-class-name: com.mysql.cj.jdbc.Driver
                    username: root
                    password: root
                edgexData:
                  driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
                  url: jdbc:TAOS-RS://xxx:6041?timezone=UTC-8&charset=UTF-8&locale=en_US.UTF-8
                  username: root
                  password: taosdata

分页可以直接使用 

PageHelper.startPage(1,1);
@DS("edgexData")
@Mapper
public interface SysEdgexDataMapper {

    List<Map> queryList(SysDataCenterVo sysDataCenterVo);
}
    <select id="queryList" parameterType="SysDataCenterVo" resultType="java.util.Map">
        select *
        from ${dataName}.${tableName}
        <where>
            <if test="startTime!=null"> and time &gt;= #{startTime} </if>
            <if test="endTime!=null"> and time &lt;= #{endTime} </if>
        </where>
    </select>

### 如何在Spring Boot项目中使用Tdengine与WebSocket进行连接 #### 集成环境准备 为了使Spring Boot应用能够通过WebSocket协议与Tdengine数据库交互,需先完成基础配置。这不仅涉及引入必要的依赖项,还涉及到创建相应的服务端点和服务逻辑。 对于WebSocket的支持,在`pom.xml`文件中加入如下依赖[^2]: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> ``` 针对Tdengine的数据访问,则需要添加对应的JDBC驱动程序作为依赖。由于官方并未提供Maven中央仓库中的直接支持,可能需要手动下载并安装到本地仓库或寻找社区维护版本。 #### 创建WebSocket配置类 定义一个用于管理WebSocket会话的配置类,该类负责注册消息代理、处理文本消息以及其他必要设置。此部分可以参照标准的Spring Boot WebSocket配置模式[^1]。 ```java @Configuration @EnableWebSocketMessageBroker public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { @Override public void configureMessageBroker(MessageBrokerRegistry config) { config.enableSimpleBroker("/topic"); config.setApplicationDestinationPrefixes("/app"); } @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/ws").withSockJS(); } } ``` #### 构建数据查询控制器 设计专门的服务层组件来封装对Tdengine的操作逻辑,并将其结果推送给前端客户端。这里假设已经存在有效的SQL语句可以直接执行于Tdengine之上获取所需数据集。 ```java @Service public class TdengineService { private final JdbcTemplate jdbcTemplate; @Autowired public TdengineService(JdbcTemplate jdbcTemplate){ this.jdbcTemplate = jdbcTemplate; } public List<Map<String, Object>> fetchDataFromTdengine(){ String sql = "SELECT * FROM your_table LIMIT 10"; // 替换为实际表名和字段 return jdbcTemplate.queryForList(sql); } } ``` 接着编写一个Controller用来接收来自浏览器或其他设备发送过来的消息请求,并调用上述service方法取得最新数据再广播给所有已订阅的主题用户。 ```java @Controller public class DataPushController { private final SimpMessagingTemplate messagingTemplate; private final TdengineService tdengineService; @Autowired public DataPushController(SimpMessagingTemplate messagingTemplate, TdengineService tdengineService){ this.messagingTemplate = messagingTemplate; this.tdengineService = tdengineService; } @Scheduled(fixedRate = 5000L) public void pushDataToClients() { List<Map<String, Object>> data = tdengineService.fetchDataFromTdengine(); messagingTemplate.convertAndSend("/topic/data", data); } } ``` 以上代码片段展示了如何在一个典型的Spring Boot应用程序里集成Tdengine和WebSocket功能,从而实现实时推送机制下的数据分析展示场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暮雪...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值