如何连接到数据库psql?

wbgh16ku  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(419)

我正在尝试使用postgresql和以下sqlfile创建和连接db:

-- recreate the user --
REVOKE ALL PRIVILEGES ON DATABASE "playground" from student;
REASSIGN OWNED BY student TO postgres;
DROP DATABASE playground WITH (FORCE);
DROP USER student;
CREATE USER student WITH PASSWORD '1';

-- recreate the database --
CREATE DATABASE playground OWNER student;
GRANT ALL PRIVILEGES ON DATABASE "playground" TO student;

-- fulfill the database --
-- \connect playground student
\connect "dbname=playground user=student password=1"

BEGIN;
\i sql/schema.sql
\i sql/data.sql
COMMIT;

但当我尝试使用jdbc/intellij idea运行它时,出现了一个错误
语法错误位于或接近\

hfyxw5xn

hfyxw5xn1#

\i 和co是命令 psql 工具过程。postgresjdbc驱动程序不理解这样的命令。
你有两个选择。

在java中执行这些命令吗 \connect 是通过断开jdbc连接来完成的( close() 它),然后通过使用正确的dbname和user/pass属性创建一个jdbc url来创建一个新连接。 \i 通过打开文件并读取每一行(例如。 BufferedReader 或者 Files.lines ),然后通过创建 Statement 执行它。

使用process exec

你也可以使用 ProcessBuilder 激发实际的 psql 命令,通过在 psql 开始的进程,将这些行发送到 /usr/bin/psql 不管它在哪里。你需要知道在哪里 psql 要做到这一点并非易事。

相关问题