【问题标题】:How to bind parameters in query with influxdb-java如何使用 influxdb-java 绑定查询中的参数
【发布时间】:2020-09-24 12:46:01
【问题描述】:

我无法在这段代码中绑定参数:

import org.influxdb.InfluxDB;
import org.influxdb.InfluxDBFactory;
import org.influxdb.dto.BoundParameterQuery;
import org.influxdb.dto.Query;
import org.influxdb.dto.QueryResult;

public class BindTest {
    public static void main(String[] args) {
        InfluxDB influxDB = InfluxDBFactory.connect("http://127.0.0.1:8086");
        String s = "SELECT LAST(*) FROM batch_assembly_monitoring WHERE last_batch_start = $lbs";
        Query query = BoundParameterQuery.QueryBuilder.newQuery(s)
                .bind("lbs", 234567890)
                .create();
        System.out.println(query.getCommand());
        QueryResult result = influxDB.query(query);
    }
}

我在标准输出得到的输出:

从 batch_assembly_monitoring WHERE last_batch_start 中选择 LAST(*) = $磅

InfluxDB 日志也包含以下内容:

[httpd] 172.17.0.1 - - [24/Sep/2020:12:40:29 +0000] "POST /query?params=%7B%22lbs%22%3A234567890%7D&q=SELECT+LAST%28%2A%29+FROM+batch_assembly_monitoring+WHERE+last_batch_start+%3D+%24lbs HTTP/1.1" 200 89"-" "okhttp/4.8.1" 20fe610d-fe63-11ea-81ba-0242ac110002 271

似乎绑定参数没有绑定,查询中使用了占位符字符串而不是值 234567890。

我做错了什么?

【问题讨论】:

    标签: java prepared-statement influxdb parameterbinding


    【解决方案1】:

    问题是我连接后没有设置数据库:

    influxDB.setDatabase("my_database");
    

    之后它开始工作。 InfluxDB日志依然没有绑定参数,只有“lbs”字符串,但是参数已经传递了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 2020-10-28
      • 1970-01-01
      • 2021-09-07
      相关资源
      最近更新 更多