使用java中的\i命令在postgres中导入.sql文件

使用java中的\i命令在postgres中导入.sql文件,java,postgresql,Java,Postgresql,我正在尝试使用“\I E:/dump.sql”命令从postgres中的.sql文件导入数据库,在postgres命令提示符下工作正常,但在java中尝试相同操作时,在“\”处出现错误,我的代码是 connection = DriverManager.getConnection( "jdbc:postgresql://localhost:5432/database","postgres", "passwd"); PreparedStatement ps3 = connection.prepare

我正在尝试使用“\I E:/dump.sql”命令从postgres中的.sql文件导入数据库,在postgres命令提示符下工作正常,但在java中尝试相同操作时,在“\”处出现错误,我的代码是

connection = DriverManager.getConnection( "jdbc:postgresql://localhost:5432/database","postgres", "passwd");
PreparedStatement ps3 = connection.prepareStatement("\\i E:/dump.sql");
boolean res3= ps3.execute();
System.out.println("imported succesfully .."+res3);

使用JDBC驱动程序/接口,您只能谈论SQL,您尝试的是发出特定于PostgreSQL命令行工具(
psql
)的命令。那不行

如果您坚持这样做,您可以使用
Runtime.getRuntime().exec(…)
方法,例如

Runtime.getRuntime().exec( "psql -f dump.sql" );

干杯,

使用JDBC驱动程序/接口,您只能谈论SQL,您尝试的是发出PostgreSQL命令行工具(
psql
)特定命令。那不行

如果您坚持这样做,您可以使用
Runtime.getRuntime().exec(…)
方法,例如

Runtime.getRuntime().exec( "psql -f dump.sql" );

干杯,长话短说,你不能<代码>\i不是PostgreSQL命令(如:PostgreSQL数据库引擎)。它是psql的命令,psql是与数据库交互的命令行工具


如果您通过JDBC连接到数据库,那么您没有使用psql,所以您不能使用它的命令(
\i
\o
等等)。

长话短说-您不能<代码>\i不是PostgreSQL命令(如:PostgreSQL数据库引擎)。它是psql的命令,psql是与数据库交互的命令行工具


如果您通过JDBC连接到数据库,那么您没有使用psql,因此您不能使用它的命令(
\i
\o
等等)。

谢谢您的回答,我如何使用Runtime.getRuntime().exec()实现同样的效果……请您详细说明一下。在Stackoverflow上,您需要自己做一些工作。这里和其他地方都有很多关于这个问题的资源。这不管用,伙计,因为“psql-f dump.sql”会提示您输入密码。我将如何提供。。好啊我将使用ProcessBuilder及其environment()方法来管理它。但仍然找不到其指定的提升错误路径。只是口吃!查看或在
pg_hba.conf
中设置信任,感谢您的回答,我如何对Runtime.getRuntime().exec()执行相同的操作……请您详细说明一下。在Stackoverflow上,希望您自己也能付出一些努力。这里和其他地方都有很多关于这个问题的资源。这不管用,伙计,因为“psql-f dump.sql”会提示您输入密码。我将如何提供。。好啊我将使用ProcessBuilder及其environment()方法来管理它。但仍然找不到其指定的提升错误路径。只是口吃!查看或在
pg_hba.conf
sure中设置信任,打开文件,将ot、oarse读入单独的查询,并将它们发送到pg。或者使用psql,如Anders建议的那样。sure,打开文件,将ot、oarse读入单独的查询,并将它们发送到pg。或者使用psql,如Anders建议的那样。