PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Vertx JDBC client queryWithParams - как да добавя списък?

Краткият отговор е, че не можете да добавите списък като параметър на заявка с общия 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, който ми помогна със същия въпрос тук .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Грешка при запазване на geodjango PointField

  2. Избиране на всички записи с SQL LIMIT и OFFSET заявка

  3. Кажете на потребителите си да се разклонят

  4. Управление на друг PostgreSQL Commitfest

  5. PostgreSQL:таблица само за четене