如何在Unix中的java中执行sql脚本文件

时间:2012-02-20 18:19:05

标签: java sql unix sql-scripts

我有这个sql脚本,我想在java程序中执行。它有3个参数:dropper_id,to_char(begin_dt),to_char(end_dt)。我该怎么做?

该程序保存在Unix服务器上。

sql脚本也位于Unix服务器上。

我想我很可能想通过命令行执行程序,但是如何用参数执行呢?

Process p = Runtime.getRuntime().exec ("psql sql_script.sql");

2 个答案:

答案 0 :(得分:1)

您可以使用JDBC和PreparedStatement执行此操作,请参阅以下教程:

以下是一些例子:

如果Java应用程序和SQL都位于同一服务器上,那么您只需加载它并执行上面给出的操作。请参见此处的示例:

如果它只是运行SQL(即应用程序的整个目的是运行该SQL而不执行任何其他操作),您可能希望查看替代解决方案,例如使用Ant执行任务,请参阅:

或使用您的数据库命令行实用程序,请参阅此处的一些示例:

这在很大程度上取决于您的具体情况,因此您需要了解在您的案例中哪些重要,以决定走哪条路。

答案 1 :(得分:1)

通常,在Java应用程序中执行数据库命令的正确方法是使用JDBC或更高级别的ORM(如Hibernate)使用基于Java的数据库连接。出于多种原因,这些是首选的,最重要的是因为它们比外部命令更容易报告和处理错误路径。

但是,如果您有理由不使用JDBC,则可以按照此问题[{3}}中所述使用ProcessBuilder