sql >> データベース >  >> RDS >> PostgreSQL

Vertx JDBCクライアントqueryWithParams-リストを追加する方法は?

    簡単に言うと、汎用のVertx JDBCクライアントではクエリパラメータとしてリストを追加することはできませんが、Postgresを使用しているため、使用できるvertx-pg-clientというPostgres固有のライブラリがあります。このコードで行ったのとほぼ同じクエリを実装しました:

    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. AmazonLinuxでpostgresSQL9.6サーバーを起動すると、認識されないサービスが返されます

    2. 'the'を無視するカスタムORDERBY

    3. Mysql:外部キーを持つ2つのテーブルの行を削除します

    4. PHPでSQLインジェクションを防ぐにはどうすればよいですか?