[英]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.