TDengine时序数据库java连接代码

yml配置文件

spring:

datasource:

tdengine:

lazy: true

driverClassName: com.taosdata.jdbc.rs.RestfulDriver

url: jdbc:TAOS-RS://127.0.0.1:6041/zjrecharge?timezone=UTC-8&charset=utf-8

username: root

password: taosdata

tdengine:

enabled: true

dbName: zjrecharge

stableCmdLog: cmd_log

时序数据库配类

import lombok.extern.slf4j.Slf4j;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;

import org.springframework.context.annotation.Configuration;

@Configuration
@ConditionalOnProperty(name = "spring.tdengine.enabled", havingValue = "true")

@Slf4j

public class TdengineConfig {

/**

* TDengine 用户名

*/

@Value("${spring.datasource.tdengine.username}")

private String username;

/**

* TDengine 密码

*/

@Value("${spring.datasource.tdengine.password}")

private String password;

/**

* url

*/

@Value("${spring.datasource.tdengine.url}")

private String jdbcUrl;

/**

* driverClassName

*/

@Value("${spring.datasource.tdengine.driverClassName}")

private String driverClassName;

/**

* TDengine 库名

*/

@Value("${spring.tdengine.dbName}")

private String dbName;

/**

* stable 超级表名

*/

@Value("${spring.tdengine.stableCmdLog}")

private String stableCmdLog;

public String getUsername() {

return username;

}

public String getPassword() {

return password;

}

public String getDbName() {

return dbName;

}

public String getJdbcUrl() {

return jdbcUrl;

}

public String getDriverClassName() {

return driverClassName;

}

public String getStableCmdLog() {

return stableCmdLog;

}

时序数据库初始化类

import com.zzdy.recharge.tdengine.config.TdengineConfig;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.util.Properties;

@Configuration(proxyBeanMethods = false)

public class ApplicationStarted {

private static final Logger LOGGER = LoggerFactory.getLogger(ApplicationStarted.class);

@Autowired

private TdengineConfig dengineConfig;

/**

*

* @Method

* @Description 开始初始化加载系统参数, 创建数据库和超级表

* @author wxy

*/

@Bean

public void initTDengine() {

LOGGER.info("开始创建实时数据库与超级表");

try {
// 创建连接-原生链接

Connection conn = getConnection();
// 创建数据库

createDatabase(conn);
// 创建指令日志超级数据库表

createSTable(conn);

LOGGER.info("完成超级表的创建");

} catch (Exception e) {

LOGGER.error("错误", e.getMessage());

e.printStackTrace();

}

}

/**
* 连接数据库
* @return
* @throws SQLException
*/

public Connection getConnection() throws SQLException {

String jdbcUrl = dengineConfig.getJdbcUrl();

String username = dengineConfig.getUsername();

String password = dengineConfig.getPassword();

String newJdbcUrl = jdbcUrl.substring(0, jdbcUrl.indexOf("/zjrecharge"));

newJdbcUrl += ("?&user=" + username);

newJdbcUrl += ("&password=" + password);

Properties connProps = new Properties();

return DriverManager.getConnection(newJdbcUrl, connProps);

}

/**
* @return
* @Method
* @Description 根据数据库连接自动创建数据库
*/

private void createDatabase(Connection conn) throws SQLException {

// 默认360天

conn.createStatement().execute(String.format(" create database if not exists %s keep 360d;", dengineConfig.getDbName()));

LOGGER.info("完成数据库创建");

}

/**
* 创建超级表
* 指令日志
*
* @throws SQLException
*/

public void createSTable(Connection conn) throws SQLException {

conn.createStatement().execute(

String.format("CREATE STABLE if not exists %s (ts timestamp, remark BINARY(500), gen_power_total float,data BINARY(1000),device_id BINARY(500), " +

"sn BINARY(500),gen_power float,gen_power_to_day float,station_id BINARY(500)) " +

"TAGS (location binary(64));",

dengineConfig.getDbName() + "." + dengineConfig.getStableCmdLog()));

LOGGER.info("完成数据库超级表创建");

}

相关推荐
yunmi_3 分钟前
微服务,Spring Cloud 和 Eureka:服务发现工具
java·spring boot·spring cloud·微服务·eureka·架构·服务发现
一叶飘零_sweeeet4 分钟前
从 0 到 PB 级存储:MinIO 分布式文件系统实战指南与架构解密
java·架构·大文件存储
Dest1ny-安全5 分钟前
Java代码审计-Servlet基础(1)
java·python·servlet
lingggggaaaa22 分钟前
小迪安全v2023学习笔记(九十七天)—— 云原生篇&Kubernetes&K8s安全&API&Kubelet未授权访问&容器执行
java·笔记·学习·安全·网络安全·云原生·kubernetes
Mr.Ja33 分钟前
【LeetCode 热题 100】No.49—— 字母异位词分组(Java 版)
java·算法·leetcode·字母异位词分组
2401_8414956442 分钟前
【数据结构】链栈的基本操作
java·数据结构·c++·python·算法·链表·链栈
元亓亓亓44 分钟前
SSM--day2--Spring(二)--核心容器&注解开发&Spring整合
java·后端·spring
毕设源码-赖学姐1 小时前
【开题答辩全过程】以 SpringMVC在筑原平面设计定制管理信息系统的应用与实践为例,包含答辩的问题和答案
java·eclipse
elikai1 小时前
分布式追踪系统实战:OpenTelemetry集成Istio实现全链路故障定位
时序数据库
程序定小飞2 小时前
基于springboot的蜗牛兼职网的设计与实现
java·数据库·vue.js·spring boot·后端·spring