Câu trả lời ngắn gọn là bạn không thể thêm Danh sách làm tham số truy vấn với ứng dụng khách Vertx JDBC chung, nhưng vì bạn đang sử dụng Postgres nên có một thư viện dành riêng cho Postgres được gọi là vertx-pg-client mà bạn có thể sử dụng. Tôi đã triển khai gần giống truy vấn như bạn đã làm với mã này:
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();
}
Tất cả tín dụng sẽ được chuyển đến @tsegismont, người đã giúp tôi trả lời câu hỏi tương tự tại đây .