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("完成数据库超级表创建");

}

相关推荐
427724001 小时前
IDEA使用git不提示账号密码登录,而是输入token问题解决
java·git·intellij-idea
chengooooooo2 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
李长渊哦2 小时前
常用的 JVM 参数:配置与优化指南
java·jvm
计算机小白一个2 小时前
蓝桥杯 Java B 组之设计 LRU 缓存
java·算法·蓝桥杯
南宫生4 小时前
力扣每日一题【算法学习day.132】
java·学习·算法·leetcode
计算机毕设定制辅导-无忧学长5 小时前
Maven 基础环境搭建与配置(一)
java·maven
风与沙的较量丶6 小时前
Java中的局部变量和成员变量在内存中的位置
java·开发语言
m0_748251726 小时前
SpringBoot3 升级介绍
java
极客先躯7 小时前
说说高级java每日一道面试题-2025年2月13日-数据库篇-请说说 MySQL 数据库的锁 ?
java·数据库·mysql·数据库的锁·模式分·粒度分·属性分
程序员侠客行7 小时前
Spring事务原理 二
java·后端·spring