首页 > 开发 > Java > 正文

java使用influxDB数据库的详细代码

2024-07-14 08:41:51
字体:
来源:转载
供稿:网友

本文实例为大家分享了java使用influxDB数据库的具体代码,供大家参考,具体内容如下

1.pom.xml中导入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; /** * 时序数据库 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";//数据库  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(){    //创建 连接    InfluxDbUtil influxDbUtil = new InfluxDbUtil(username, password, openurl, database);     influxDbUtil.influxDbBuild();     influxDbUtil.createRetentionPolicy(); //   influxDB.deleteDB(database);//   influxDB.createDB(database);    return influxDbUtil;  }   /**连接时序数据库;获得InfluxDB**/  public InfluxDB influxDbBuild(){    if(influxDB == null){      influxDB = InfluxDBFactory.connect(openurl, username, password);      influxDB.createDatabase(database);    }    return influxDB;  }   /**   * 设置数据保存策略   * defalut 策略名 /database 数据库名/ 30d 数据保存时限30天/ 1 副本个数为1/ 结尾DEFAULT 表示 设为默认的策略   */  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 标签   * @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 返回错误信息   */  public String deleteMeasurementData(String command){    QueryResult result = influxDB.query(new Query(command, database));    return result.getError();  }   /**   * 创建数据库   * @param dbName   */  public void createDB(String dbName){    influxDB.createDatabase(dbName);  }   /**   * 删除数据库   * @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);  }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表