当前位置: 移动技术网 > IT编程>开发语言>Java > java使用influxDB数据库的详细代码

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

2019年07月19日  | 移动技术网IT编程  | 我要评论

本文实例为大家分享了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);
  }
}

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网