java使用influxDB數(shù)據(jù)庫的詳細(xì)代碼
本文實(shí)例為大家分享了java使用influxDB數(shù)據(jù)庫的具體代碼,供大家參考,具體內(nèi)容如下
1.pom.xml中導(dǎo)入jar包依賴
<!-- 引入influxdb依賴 --> <dependency> <groupId>org.influxdb</groupId> <artifactId>influxdb-java</artifactId> <version>2.5</version> </dependency>
2.編寫influxDB工具類:
package com.hontye.parameter.util; import org.influxdb.InfluxDB; import org.influxdb.InfluxDBFactory; import org.influxdb.dto.Point; import org.influxdb.dto.Point.Builder; import org.influxdb.dto.Query; import org.influxdb.dto.QueryResult; import java.util.Map; /** * 時(shí)序數(shù)據(jù)庫 InfluxDB 連接 * @author Dai_LW * */ public class InfluxDbUtil { private static String openurl = "http://127.0.0.1:8086";//連接地址 private static String username = "root";//用戶名 private static String password = "root";//密碼 private static String database = "PARAMTER_DB";//數(shù)據(jù)庫 private static String measurement = "tw_parameter_tb";//表名 private InfluxDB influxDB; public InfluxDbUtil(String username, String password, String openurl, String database){ this.username = username; this.password = password; this.openurl = openurl; this.database = database; } public static InfluxDbUtil setUp(){ //創(chuàng)建 連接 InfluxDbUtil influxDbUtil = new InfluxDbUtil(username, password, openurl, database); influxDbUtil.influxDbBuild(); influxDbUtil.createRetentionPolicy(); // influxDB.deleteDB(database); // influxDB.createDB(database); return influxDbUtil; } /**連接時(shí)序數(shù)據(jù)庫;獲得InfluxDB**/ public InfluxDB influxDbBuild(){ if(influxDB == null){ influxDB = InfluxDBFactory.connect(openurl, username, password); influxDB.createDatabase(database); } return influxDB; } /** * 設(shè)置數(shù)據(jù)保存策略 * defalut 策略名 /database 數(shù)據(jù)庫名/ 30d 數(shù)據(jù)保存時(shí)限30天/ 1 副本個(gè)數(shù)為1/ 結(jié)尾DEFAULT 表示 設(shè)為默認(rèn)的策略 */ public void createRetentionPolicy(){ String command = String.format("CREATE RETENTION POLICY \"%s\" ON \"%s\" DURATION %s REPLICATION %s DEFAULT", "defalut", database, "30d", 1); this.query(command); } /** * 查詢 * @param command 查詢語句 * @return */ public QueryResult query(String command){ return influxDB.query(new Query(command, database)); } /** * 插入 * @param tags 標(biāo)簽 * @param fields 字段 */ public void insert(Map<String, String> tags, Map<String, Object> fields){ Builder builder = Point.measurement(measurement); builder.tag(tags); builder.fields(fields); influxDB.write(database, "", builder.build()); } /** * 刪除 * @param command 刪除語句 * @return 返回錯(cuò)誤信息 */ public String deleteMeasurementData(String command){ QueryResult result = influxDB.query(new Query(command, database)); return result.getError(); } /** * 創(chuàng)建數(shù)據(jù)庫 * @param dbName */ public void createDB(String dbName){ influxDB.createDatabase(dbName); } /** * 刪除數(shù)據(jù)庫 * @param dbName */ public void deleteDB(String dbName){ influxDB.deleteDatabase(dbName); } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getOpenurl() { return openurl; } public void setOpenurl(String openurl) { this.openurl = openurl; } public void setDatabase(String database) { this.database = database; } }
3.存值
public class QuatyServiceImpl{ private InfluxDbUtil influxDB; public void intoDb() { influxDB = InfluxDbUtil.setUp(); Map<String, String> tags = new HashMap<>(); Map<String, Object> fields = new HashMap<>(); tags.put("TAG_NAME",info.getKey()); fields.put("TAG_VALUE",code); fields.put("TIMAMPEST", df.format(new Date())); influxDB.insert(tags, fields); } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java的無參構(gòu)造函數(shù)用法實(shí)例分析
這篇文章主要介紹了Java的無參構(gòu)造函數(shù)用法,結(jié)合實(shí)例形式分析了java無參構(gòu)造函數(shù)基本原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-09-09springboot整合通用Mapper簡(jiǎn)化單表操作詳解
這篇文章主要介紹了springboot整合通用Mapper簡(jiǎn)化單表操作,通用Mapper是一個(gè)基于Mybatis,將單表的增刪改查通過通用方法實(shí)現(xiàn),來減少SQL編寫的開源框架,需要的朋友可以參考下2019-06-06分布式面試分布式鎖實(shí)現(xiàn)及應(yīng)用場(chǎng)景
這篇文章主要為大家介紹了關(guān)于分布式的面試問題,分布式鎖的實(shí)現(xiàn)及應(yīng)用不同場(chǎng)景下的使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03springboot如何使用logback-spring配置日志格式,并分環(huán)境配置
這篇文章主要介紹了springboot如何使用logback-spring配置日志格式,并分環(huán)境配置的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07深入淺析Netty 在 Dubbo 中是如何應(yīng)用的
國(guó)內(nèi)知名框架 Dubbo 底層使用的是 Netty 作為網(wǎng)絡(luò)通信,那么內(nèi)部到底是如何使用的呢?今天通過本文給大家詳細(xì)講解,對(duì)Netty 在 Dubbo中應(yīng)用相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧2020-05-05springboot項(xiàng)目如何在linux服務(wù)器上啟動(dòng)、停止腳本
這篇文章主要介紹了springboot項(xiàng)目如何在linux服務(wù)器上啟動(dòng)、停止腳本問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05Spring根據(jù)XML配置文件 p名稱空間注入屬性的實(shí)例
下面小編就為大家分享一篇Spring根據(jù)XML配置文件 p名稱空間注入屬性的實(shí)例,具有很好的參考價(jià)值。希望對(duì)大家有所幫助2017-11-11使用SpringBoot設(shè)置虛擬路徑映射絕對(duì)路徑
這篇文章主要介紹了使用SpringBoot設(shè)置虛擬路徑映射絕對(duì)路徑的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08