1
zhang
7 天以前 33cf36a06ccadf96fb2486ed8e5a1aa5dd6ed664
1
3个文件已添加
5个文件已修改
125 ■■■■ 已修改文件
component/component-Influxdb/pom.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
component/component-Influxdb/src/main/java/com/zy/influxdb/config/InfluxDBAutoConfiguration.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
component/component-Influxdb/src/main/java/com/zy/influxdb/service/InfluxDBService.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
component/component-Influxdb/target/classes/com/zy/influxdb/base/BaseTemperature.class 补丁 | 查看 | 原始文档 | blame | 历史
component/component-Influxdb/target/classes/com/zy/influxdb/service/InfluxDBService.class 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-hex/pom.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-hex/src/main/java/com/zy/Main.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
component/component-Influxdb/pom.xml
@@ -17,14 +17,14 @@
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!-- Dependency Versions -->
        <influxdb-java.version>6.6.0</influxdb-java.version>
        <influxdb-java.version>1.7.0</influxdb-java.version>
        <lombok.version>1.18.20</lombok.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.influxdb</groupId>
            <artifactId>influxdb-client-java</artifactId>
            <artifactId>influxdb3-java</artifactId>
            <version>${influxdb-java.version}</version>
        </dependency>
        <dependency>
component/component-Influxdb/src/main/java/com/zy/influxdb/config/InfluxDBAutoConfiguration.java
@@ -1,7 +1,6 @@
package com.zy.influxdb.config;
import com.influxdb.client.InfluxDBClient;
import com.influxdb.client.InfluxDBClientFactory;
import com.influxdb.v3.client.InfluxDBClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -19,6 +18,6 @@
    @Bean(destroyMethod = "close")
    public InfluxDBClient influxDBClient(InfluxDBProperties influxDBProperties) throws Exception{
        return InfluxDBClientFactory.create(influxDBProperties.getUrl(), influxDBProperties.getToken().toCharArray(), influxDBProperties.getDatabase());
        return InfluxDBClient.getInstance(influxDBProperties.getUrl(), influxDBProperties.getToken().toCharArray(), influxDBProperties.getDatabase());
    }
}
component/component-Influxdb/src/main/java/com/zy/influxdb/service/InfluxDBService.java
@@ -1,12 +1,9 @@
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 com.influxdb.v3.client.InfluxDBClient;
import com.influxdb.v3.client.Point;
import com.influxdb.v3.client.write.WritePrecision;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -28,78 +25,55 @@
    @Autowired
    private InfluxDBClient influxDBClient;
    // 构造函数注入客户端
    /**
     * 写入数据
     *
     * @param measurement 表名
     * @param tags 标签
     * @param fields 字段
     */
    public void writeData(String measurement, Map<String,String> tags,Map<String,Object> fields) {
        WriteApiBlocking writeApiBlocking = influxDBClient.getWriteApiBlocking();
        Point point = Point.measurement(measurement)
                .addTags(tags)
                .addFields(fields)
                .time(Instant.now().toEpochMilli(), WritePrecision.MS);
                .setTags(tags)
                .setFields(fields)
                .setTimestamp(Instant.now().toEpochMilli(), WritePrecision.MS);
        try {
            writeApiBlocking.writePoint(point);
            influxDBClient.writePoint(point);
            System.out.println("Data written to the database.");
        }
        catch (Exception e) {
            System.err.println("Failed to write data to the database.");
        } catch (Exception e) {
            logger.error("Failed to write data to the database.");
            e.printStackTrace();
        }
    }
    /**
     * 查询数据
     *
     * @param sql sql语句
     * @return 查询结果列表
     */
    public  List<FluxTable> queryData(String sql) {
    public List<Map<String, Object>> queryData(String sql) {
        try {
            // 执行查询
            return influxDBClient.getQueryApi().query(sql);
            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;
        } catch (Exception e) {
            System.err.println("Failed to query data from the database.");
            logger.error("Failed to query data from the database.");
            e.printStackTrace();
        }
        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;
    }
}
component/component-Influxdb/target/classes/com/zy/influxdb/base/BaseTemperature.class
Binary files differ
component/component-Influxdb/target/classes/com/zy/influxdb/service/InfluxDBService.class
Binary files differ
pom.xml
@@ -25,6 +25,7 @@
        <module>zy-acs-fake</module>
        <module>zy-acs-cv</module>
        <module>component</module>
        <module>zy-acs-hex</module>
    </modules>
    <properties>
zy-acs-hex/pom.xml
New file
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.zy</groupId>
        <artifactId>acs</artifactId>
        <version>1.0.0</version>
    </parent>
    <artifactId>zy-acs-hex</artifactId>
    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
</project>
zy-acs-hex/src/main/java/com/zy/Main.java
New file
@@ -0,0 +1,17 @@
package com.zy;
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
    public static void main(String[] args) {
        //TIP Press <shortcut actionId="ShowIntentionActions"/> with your caret at the highlighted text
        // to see how IntelliJ IDEA suggests fixing it.
        System.out.printf("Hello and welcome!");
        for (int i = 1; i <= 5; i++) {
            //TIP Press <shortcut actionId="Debug"/> to start debugging your code. We have set one <icon src="AllIcons.Debugger.Db_set_breakpoint"/> breakpoint
            // for you, but you can always add more by pressing <shortcut actionId="ToggleLineBreakpoint"/>.
            System.out.println("i = " + i);
        }
    }
}