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/src/main/java/com/zy/influxdb/service/InfluxDBService.java | 74 +++++++++++++++++++++++++-----------
1 files changed, 51 insertions(+), 23 deletions(-)
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 c450804..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,9 +1,15 @@
package com.zy.influxdb.service;
-import com.influxdb.v3.client.InfluxDBClient;
-import com.influxdb.v3.client.Point;
+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;
@@ -19,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 ;
- }
+
/**
@@ -34,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) {
@@ -52,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();
@@ -74,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;
+
+ }
}
--
Gitblit v1.9.1