संक्षिप्त उत्तर यह है कि आप जेनेरिक Vertx JDBC क्लाइंट के साथ एक क्वेरी पैरामीटर के रूप में एक सूची नहीं जोड़ सकते हैं, लेकिन चूंकि आप Postgres का उपयोग कर रहे हैं, वहाँ एक Postgres-विशिष्ट लाइब्रेरी है जिसे vertx-pg-client कहा जाता है जिसका आप उपयोग कर सकते हैं। मैंने लगभग उसी क्वेरी को लागू किया जैसा आपने इस कोड के साथ किया था:
List<String> currencies = whatever();
String uri = "your-uri";
String query = "select from table where currency = any($1)";
PgConnection.connect(vertx, uri, connectionResult -> {
if (connectionResult.failed()) {
// handle
} else {
PgConnection connection = connectionResult.result();
Tuple params = Tuple.of(currencies);
doQuery(query, connection, params).setHandler(queryResult -> {
connection.close();
msg.reply(queryResult.result());
});
}
});
private Future<String> doQuery(String sql, PgConnection connection, Tuple params) {
Promise<String> promise = Promise.promise();
connection.preparedQuery(sql, params, res -> {
if (res.failed()) {
// log
promise.fail(res.cause());
} else {
RowSet<Row> rowSet = res.result();
// do something with the rows and construct a return object (here, a string)
String result = something;
promise.complete(result);
}
});
return promise.future();
}
सारा श्रेय @tsegismont को जाता है जिन्होंने इसी प्रश्न के साथ मेरी मदद की यहां ।