From 3cf258f4eff5e5c197a3026398281b2e63ccb002 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期四, 29 一月 2026 10:25:33 +0800
Subject: [PATCH] 1

---
 component/component-Influxdb/target/classes/com/zy/influxdb/config/InfluxDBAutoConfiguration.class |    0 
 component/component-Influxdb/src/main/java/com/zy/influxdb/config/InfluxDBAutoConfiguration.java   |    5 +-
 component/component-Influxdb/src/main/java/com/zy/influxdb/service/InfluxDBService.java            |   72 +++++++++++++++++++++++++----------
 component/component-Influxdb/target/classes/com/zy/influxdb/service/InfluxDBService.class          |    0 
 component/component-Influxdb/target/classes/META-INF/spring-configuration-metadata.json            |   30 +++++++++++++++
 component/component-Influxdb/target/classes/com/zy/influxdb/config/InfluxDBProperties.class        |    0 
 component/component-Influxdb/pom.xml                                                               |    5 ++
 7 files changed, 89 insertions(+), 23 deletions(-)

diff --git a/component/component-Influxdb/pom.xml b/component/component-Influxdb/pom.xml
index 13751ea..ef92efe 100644
--- a/component/component-Influxdb/pom.xml
+++ b/component/component-Influxdb/pom.xml
@@ -28,6 +28,11 @@
             <version>${influxdb-java.version}</version>
         </dependency>
         <dependency>
+            <groupId>com.squareup.okhttp3</groupId>
+            <artifactId>okhttp</artifactId>
+            <version>4.9.3</version>
+        </dependency>
+        <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter</artifactId>
         </dependency>
diff --git a/component/component-Influxdb/src/main/java/com/zy/influxdb/config/InfluxDBAutoConfiguration.java b/component/component-Influxdb/src/main/java/com/zy/influxdb/config/InfluxDBAutoConfiguration.java
index 0daa6fc..693c1ea 100644
--- a/component/component-Influxdb/src/main/java/com/zy/influxdb/config/InfluxDBAutoConfiguration.java
+++ b/component/component-Influxdb/src/main/java/com/zy/influxdb/config/InfluxDBAutoConfiguration.java
@@ -1,6 +1,7 @@
 package com.zy.influxdb.config;
 
-import com.influxdb.v3.client.InfluxDBClient;
+import com.influxdb.client.InfluxDBClient;
+import com.influxdb.client.InfluxDBClientFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -18,6 +19,6 @@
 
     @Bean(destroyMethod = "close")
     public InfluxDBClient influxDBClient(InfluxDBProperties influxDBProperties) throws Exception{
-        return InfluxDBClient.getInstance(influxDBProperties.getUrl(), influxDBProperties.getToken().toCharArray(), influxDBProperties.getDatabase());
+        return InfluxDBClientFactory.create(influxDBProperties.getUrl(), influxDBProperties.getToken().toCharArray(), influxDBProperties.getDatabase());
     }
 }
diff --git a/component/component-Influxdb/src/main/java/com/zy/influxdb/service/InfluxDBService.java b/component/component-Influxdb/src/main/java/com/zy/influxdb/service/InfluxDBService.java
index dc7155a..b9ee4ca 100644
--- a/component/component-Influxdb/src/main/java/com/zy/influxdb/service/InfluxDBService.java
+++ b/component/component-Influxdb/src/main/java/com/zy/influxdb/service/InfluxDBService.java
@@ -1,7 +1,15 @@
 package com.zy.influxdb.service;
 
+import com.influxdb.annotations.Column;
+import com.influxdb.annotations.Measurement;
+import com.influxdb.client.InfluxDBClient;
+import com.influxdb.client.WriteApiBlocking;
+import com.influxdb.client.domain.WritePrecision;
+import com.influxdb.client.write.Point;
+import com.influxdb.query.FluxTable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.time.Instant;
@@ -17,12 +25,11 @@
 
     private static final Logger logger = LoggerFactory.getLogger(InfluxDBService.class);
 
-    private final InfluxDBClient influxDBClient;
+    @Autowired
+    private InfluxDBClient influxDBClient;
 
     // 鏋勯�犲嚱鏁版敞鍏ュ鎴风
-    public InfluxDBService(InfluxDBClient  influxDBClient  ) {
-        this.influxDBClient =  influxDBClient  ;
-    }
+
 
 
     /**
@@ -32,12 +39,13 @@
      * @param fields 瀛楁
      */
     public void writeData(String measurement, Map<String,String> tags,Map<String,Object> fields) {
+        WriteApiBlocking writeApiBlocking = influxDBClient.getWriteApiBlocking();
         Point point = Point.measurement(measurement)
-                .setTags(tags)
-                .setFields(fields)
-                .setTimestamp(Instant.now().minusSeconds(10));
+                .addTags(tags)
+                .addFields(fields)
+                .time(Instant.now().toEpochMilli(), WritePrecision.MS);
         try {
-            influxDBClient.writePoint(point);
+            writeApiBlocking.writePoint(point);
             System.out.println("Data written to the database.");
         }
         catch (Exception e) {
@@ -50,21 +58,10 @@
      * @param sql sql璇彞
      * @return 鏌ヨ缁撴灉鍒楄〃
      */
-    public List<Map<String, Object>> queryData(String sql) {
-
+    public  List<FluxTable> queryData(String sql) {
         try {
             // 鎵ц鏌ヨ
-            Stream<Object[]> query = influxDBClient.query(sql);
-            // 杞崲涓� Map 鍒楄〃锛堜究浜庡悗缁鐞嗭級
-            List<Map<String, Object>> collect = query.map(record -> {
-                        Map<String, Object> map = new LinkedHashMap<>();
-                        for (int i = 0; i < record.length; i += 2) {
-                            map.put((String) record[i], record[i + 1]);
-                        }
-                        return map;
-                    })
-                    .collect(Collectors.toList());
-            return collect;
+            return influxDBClient.getQueryApi().query(sql);
         } catch (Exception e) {
             System.err.println("Failed to query data from the database.");
             e.printStackTrace();
@@ -72,4 +69,37 @@
         return null;
     }
 
+
+    /**
+     * 鏌ヨ鏁版嵁
+     * @param sql sql璇彞
+     * @return 鏌ヨ缁撴灉鍒楄〃
+     */
+    public  <T>  List<T> queryData(String sql,T t) {
+        try {
+            // 鎵ц鏌ヨ
+            List<T> temperatures = influxDBClient.getQueryApi().q(sql, t.getClass());
+
+
+        } catch (Exception e) {
+            System.err.println("Failed to query data from the database.");
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    //POJO绫诲畾涔夊涓嬶細
+    @Measurement(name = "temperature")//琛ㄥ悕
+    public static class Temperature {
+
+        @Column(tag = true)//tag
+        String location;
+
+        @Column//field
+        Double value;
+
+        @Column(timestamp = true)//timestamp
+        Instant time;
+
+    }
 }
diff --git a/component/component-Influxdb/target/classes/META-INF/spring-configuration-metadata.json b/component/component-Influxdb/target/classes/META-INF/spring-configuration-metadata.json
new file mode 100644
index 0000000..b3ce3b2
--- /dev/null
+++ b/component/component-Influxdb/target/classes/META-INF/spring-configuration-metadata.json
@@ -0,0 +1,30 @@
+{
+  "groups": [
+    {
+      "name": "influxdb3",
+      "type": "com.zy.influxdb.config.InfluxDBProperties",
+      "sourceType": "com.zy.influxdb.config.InfluxDBProperties"
+    }
+  ],
+  "properties": [
+    {
+      "name": "influxdb3.database",
+      "type": "java.lang.String",
+      "description": "database for http",
+      "sourceType": "com.zy.influxdb.config.InfluxDBProperties"
+    },
+    {
+      "name": "influxdb3.token",
+      "type": "java.lang.String",
+      "description": "token",
+      "sourceType": "com.zy.influxdb.config.InfluxDBProperties"
+    },
+    {
+      "name": "influxdb3.url",
+      "type": "java.lang.String",
+      "description": "InfluxDB http url",
+      "sourceType": "com.zy.influxdb.config.InfluxDBProperties"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/component/component-Influxdb/target/classes/com/zy/influxdb/config/InfluxDBAutoConfiguration.class b/component/component-Influxdb/target/classes/com/zy/influxdb/config/InfluxDBAutoConfiguration.class
new file mode 100644
index 0000000..b9d457f
--- /dev/null
+++ b/component/component-Influxdb/target/classes/com/zy/influxdb/config/InfluxDBAutoConfiguration.class
Binary files differ
diff --git a/component/component-Influxdb/target/classes/com/zy/influxdb/config/InfluxDBProperties.class b/component/component-Influxdb/target/classes/com/zy/influxdb/config/InfluxDBProperties.class
new file mode 100644
index 0000000..b57cddf
--- /dev/null
+++ b/component/component-Influxdb/target/classes/com/zy/influxdb/config/InfluxDBProperties.class
Binary files differ
diff --git a/component/component-Influxdb/target/classes/com/zy/influxdb/service/InfluxDBService.class b/component/component-Influxdb/target/classes/com/zy/influxdb/service/InfluxDBService.class
new file mode 100644
index 0000000..cc62930
--- /dev/null
+++ b/component/component-Influxdb/target/classes/com/zy/influxdb/service/InfluxDBService.class
Binary files differ

--
Gitblit v1.9.1