1

postgresql データベース用の spring r2dbc 接続があり、テーブルを作成したいと考えています。

実質的に SQL と同等

CREATE TABLE IF NOT EXISTS name (id, bigint);

DatabaseClient は選択/挿入のみをサポートしているように見えるので、どうすればよいですか?

4

2 に答える 2

0

テーブルを作成するために DatabaseClient を使用する必要はありません。だから私はあなたと同じ問題に直面したとき、私は次のコードのようなことをしました:

 fun postgresProcess(config: PostgresConfig): PostgresProcess {
        val runtime = PostgresStarter.getDefaultInstance()
        val exec = runtime.prepare(config)
        val postgres = exec.start()
        // connecting to a running Postgres and feeding up the database
        val conn = DriverManager.getConnection("jdbc:postgresql://$host:$port/$database", username, password)
        conn.createStatement().execute("CREATE TABLE customer ( id SERIAL PRIMARY KEY, firstname VARCHAR(100) NOT NULL, lastname VARCHAR(100) NOT NULL);")
        return postgres
    }

最初は、このようなことを行うことができ、データベースクライアントを使用できるようになった後.

フライウェイを試みて成功しなかったことを覚えています。DatabaseClient を使用したかったのです。私のレポgithubのその他のコード

于 2019-06-24T20:54:43.773 に答える
0

Thomas Andolfがコメントで言ったように

.execute().sql()確かに正しいアプローチです

私の場合、続行する前に結果を無期限にブロックする必要があったため、追加する必要がありました .fetch().all().collectList().block();

于 2019-06-25T18:22:49.563 に答える