在Spring r2dbc中创建表

时间:2019-06-24 20:45:12

标签: spring postgresql spring-boot r2dbc spring-data-r2dbc

我有一个用于postgresql数据库的spring r2dbc连接,想创建一个表,

等效于SQL

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

由于DatabaseClient似乎仅支持选择/插入,我该怎么办?

2 个答案:

答案 0 :(得分: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

上的更多代码

答案 1 :(得分:0)

如托马斯·安道夫(Thomas Andolf)在评论中所说

.execute().sql()确实是正确的方法

就我而言,在继续操作之前,我需要无限期地阻塞结果,因此我需要附加.fetch().all().collectList().block();