简体   繁体   English

如何使用 influxdb-java 绑定查询中的参数

[英]How to bind parameters in query with influxdb-java

I am not able to bind parameters in this code:我无法在此代码中绑定参数:

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);
    }
}

The output I get at stdout:我在 stdout 得到的输出:

SELECT LAST(*) FROM batch_assembly_monitoring WHERE last_batch_start = $lbs SELECT LAST(*) FROM batch_assembly_monitoring WHERE last_batch_start = $lbs

and also InfluxDB log contains this:以及 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 [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

It seems binding parameters are not bound and a placeholder string is used in query instead of value 234567890.似乎绑定参数未绑定,查询中使用占位符字符串而不是值 234567890。

What do I wrong?我怎么了?

The problem was that I didn't set the database after connect:问题是我连接后没有设置数据库:

influxDB.setDatabase("my_database");

After that it started working.之后它开始工作。 InfluxDB log still does not contain bound parameter, only "lbs" string, but the parameter has been passed. InfluxDB 日志仍然不包含绑定参数,只有“lbs”字符串,但参数已传递。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 除非强制唯一时间,否则带有 influxdb-java 的批处理点会被覆盖? - batchPoints with influxdb-java getting overwritten unless forced unique time? 在influxdb-java API点中动态创建标签数量以在influxDB中插入点 - Dynamically creating number of tags in influxdb-java API point to insert a point in influxDB Influxdb-java:org.influxdb.InfluxDBIOException:java.net.SocketException:通过对等方重置连接:套接字写入错误 - influxdb-java: org.influxdb.InfluxDBIOException: java.net.SocketException: Connection reset by peer: socket write error 如何绑定到Cloud Spanner Java API中的IN参数 - How to bind to IN parameters in Cloud Spanner Java API 如何在java中准备查询参数 - How to prepare query parameters in java 如果查询是动态语句,如何在hibernate中绑定查询参数? - How to bind query parameters in hibernate if query is dynamic statement? 使用 hibernate Query 绑定多个参数 - Bind multiple parameters with hibernate Query influxdb查询这么慢,如何提高性能 - query so slow in influxdb, how to improve the performance 如何使用Http客户端在java中传递查询参数 - how to pass query parameters in java with Http client 如何在Java Jersey应用程序中使用查询参数? - How to use the query parameters in Java Jersey Application?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM