java - 在 java 程序中运行 psql 命令
问题描述
我有一个要求,我需要使用 java 代码创建/删除/更改 postgres 表。
我写了一个程序如下:
public static void main(String[] args) throws IOException {
System.out.println("Hello World!");
Process p = Runtime.getRuntime().exec("psql -U postgres -d testdb -h localhost -p 5433 -f D:\test.sql");
}
test.sql 文件如下所示,
Create TABLE MyTable1
(
VersionNumber VARCHAR(32) NOT NUll
);
Create TABLE MyTable2
(
VersionNumber VARCHAR(32) NOT NUll
);
Create TABLE MyTable3
(
VersionNumber VARCHAR(32) NOT NUll
);
问题:
如果我运行相同的 psql 命令:
psql -U postgres -d testdb -h localhost -p 5433 -f D:\test.sql
在命令行中,它要求输入密码并创建表。
但是在java程序中,没有提供密码的规定。请让我知道如何实现它。
解决方案
您可以改用连接 URL:
psql -f d:\test.sql postgresql://postgres:password@localhost:5433/testdb
推荐阅读
- jsf - 选择更改并单击离开后,rowsPerPageTemplate 下拉菜单消失
- python-3.x - 如何利用 pyspark 获取 impala db/tables 元数据?
- docker - docker-compose 给出错误:backend exited with code 2 backend | /bin/sh:语法错误:未终止的引号字符串
- excel - 如果我将光标放在特定单元格中,自动运行宏?
- javascript - 如何更改名称提示中的默认键盘语言?
- r - 减少程序计算时间的建议
- regex - 尝试通过正则表达式在类别中查找前 10 名产品
- c++ - 使用boost串口读取时无法加入线程
- docker - Dockerfile,服务 cron 失败
- sql - 层次比较