diff --git a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/config/TDengineConfig.java b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/config/TDengineConfig.java
index c71a0812..07ccf9d1 100644
--- a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/config/TDengineConfig.java
+++ b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/config/TDengineConfig.java
@@ -36,6 +36,8 @@ public class TDengineConfig {
@Value("${spring.datasource.druid.tdengine-server.dbName}")
private String dbName;
+ @Value("${spring.datasource.druid.tdengine-server.url}")
+ private String jdbc;
@Bean(name = "tDengineDataSource")
diff --git a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/dao/DatabaseDAO.java b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/dao/DatabaseDAO.java
deleted file mode 100644
index 3044d692..00000000
--- a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/dao/DatabaseDAO.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.ruoyi.iot.tdengine.dao;
-
-import org.springframework.stereotype.Repository;
-
-/**
- * @package com.ruoyi.mysql.mysql.tdengine
- * 类名: DatabaseMapper
- * 描述: TODO
- * 时间: 2022/5/16,0016 1:27
- * 开发人: wxy
- */
-@Repository
-public interface DatabaseDAO {
-
- int createDB();
-
- int dropDatabase();
-
- int useDatabase();
-
- int createTable();
-
-
-
-}
diff --git a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/init/ApplicationStarted.java b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/init/ApplicationStarted.java
index 44bc356f..d30f1061 100644
--- a/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/init/ApplicationStarted.java
+++ b/springboot/wumei-iot/src/main/java/com/ruoyi/iot/tdengine/init/ApplicationStarted.java
@@ -1,8 +1,11 @@
package com.ruoyi.iot.tdengine.init;
+import com.alibaba.druid.pool.DruidDataSource;
+import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.iot.tdengine.config.TDengineConfig;
import com.ruoyi.iot.tdengine.dao.TDDeviceLogDAO;
+import com.taosdata.jdbc.TSDBDriver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -12,6 +15,13 @@ import org.springframework.context.ApplicationContext;
import org.springframework.lang.Nullable;
import org.springframework.stereotype.Component;
+import javax.annotation.PostConstruct;
+import java.io.*;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.util.Properties;
+
/**
* 类名: ApplicationStarted
* 描述: TODO
@@ -26,15 +36,24 @@ public class ApplicationStarted implements ApplicationRunner {
@Autowired
private ApplicationContext applicationContext;
+ private DruidDataSource dataSource;
+
+ private TDengineConfig dengineConfig;
+
+ private TDDeviceLogDAO deviceLogMapper;
+
+
@Override
public void run(ApplicationArguments args) {
+
//先获取TDengine的配置,检测TDengine是否已经配置
if (containBean(TDengineConfig.class)) {
- TDengineConfig tDengineConfig = applicationContext.getBean(TDengineConfig.class);
- TDDeviceLogDAO tDDeviceLogDAO = applicationContext.getBean(TDDeviceLogDAO.class);
- initTDengine(tDengineConfig, tDDeviceLogDAO);
+ this.dengineConfig = applicationContext.getBean(TDengineConfig.class);
+ this.dataSource = applicationContext.getBean("tDengineDataSource", DruidDataSource.class);
+ this.deviceLogMapper= applicationContext.getBean(TDDeviceLogDAO.class);
+ initTDengine(this.dengineConfig.getDbName());
System.out.println("初始化TDengine成功");
- }else{
+ } else {
System.out.println("MySQL初始化成功");
}
}
@@ -47,12 +66,12 @@ public class ApplicationStarted implements ApplicationRunner {
* @date 2022/5/22,0022 14:27
* @author wxy
*/
- public void initTDengine(TDengineConfig dengineConfig, TDDeviceLogDAO deviceLogMapper) {
+ public void initTDengine(String dbName) {
try {
- String dbName = dengineConfig.getDbName();
- int db = deviceLogMapper.createDB(dbName);
+ createDatabase();
+ //创建数据库表
deviceLogMapper.createSTable(dbName);
- System.out.println(db);
+ System.out.println("完成超级表的创建");
} catch (Exception e) {
e.printStackTrace();
System.out.println("ERROR");
@@ -60,6 +79,43 @@ public class ApplicationStarted implements ApplicationRunner {
}
+ /**
+ * @Method
+ * @Description 根据数据库连接自动创建数据库
+ * @Param null
+ * @return
+ * @date 2022/5/24,0024 14:32
+ * @author wxy
+ *
+ */
+ private void createDatabase(){
+ try {
+ String dbName = dengineConfig.getDbName();
+ String jdbcUrl = dataSource.getRawJdbcUrl();
+ String username = dataSource.getUsername();
+ String password = dataSource.getPassword();
+ jdbcUrl += ("&user=" + username);
+ jdbcUrl += ("&password=" + password);
+ int startIndex = jdbcUrl.indexOf('/',12);
+ int endIndex = jdbcUrl.indexOf('?');
+ String newJdbcUrl = jdbcUrl.substring(0,startIndex);
+ newJdbcUrl= newJdbcUrl+jdbcUrl.substring(endIndex);
+ System.out.println(newJdbcUrl);
+
+ Properties connProps = new Properties();
+ connProps.setProperty(TSDBDriver.PROPERTY_KEY_CHARSET, "UTF-8");
+ connProps.setProperty(TSDBDriver.PROPERTY_KEY_LOCALE, "en_US.UTF-8");
+ connProps.setProperty(TSDBDriver.PROPERTY_KEY_TIME_ZONE, "UTC-8");
+ Connection conn = DriverManager.getConnection(newJdbcUrl, connProps);
+ conn.createStatement().execute(String.format("create database if not exists %s;",dbName));
+ conn.close();
+ System.out.println("完成数据库创建");
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.out.println("ERROR");
+ }
+ }
+
/**
* @return
* @Method containBean
@@ -76,4 +132,6 @@ public class ApplicationStarted implements ApplicationRunner {
return true;
}
}
+
+
}
diff --git a/springboot/wumei-iot/src/main/resources/mapper/tdengine/DatabaseMapper.xml b/springboot/wumei-iot/src/main/resources/mapper/tdengine/DatabaseMapper.xml
deleted file mode 100644
index f5a6853a..00000000
--- a/springboot/wumei-iot/src/main/resources/mapper/tdengine/DatabaseMapper.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
- create database if not exists ${dbName};
-
-
-
-
- DROP database if exists ${dbName};
-
-
-
-
- use ${dbName};
-
-
-
- create stable if not exists ${tableName}
- (ts timestamp,
- log_id BIGINT,
- identity NCHAR(100),
- log_type NCHAR(20),
- log_value NCHAR(100),
- device_id BIGINT,
- device_name NCHAR(100),
- serial_number NCHAR(100),
- is_monitor int,
- create_by NCHAR(100),
- create_time timestamp,
- remark NCHAR(1000),
- );
-
-
-
-
\ No newline at end of file
diff --git a/springboot/wumei-iot/src/main/resources/mapper/tdengine/TDDeviceLogMapper.xml b/springboot/wumei-iot/src/main/resources/mapper/tdengine/TDDeviceLogMapper.xml
index 1bf0071b..1a0e4ba8 100644
--- a/springboot/wumei-iot/src/main/resources/mapper/tdengine/TDDeviceLogMapper.xml
+++ b/springboot/wumei-iot/src/main/resources/mapper/tdengine/TDDeviceLogMapper.xml
@@ -42,7 +42,6 @@
-
create STABLE if not exists ${database}.device_log
(
ts timestamp,