2012-02-20 58 views
0

我有这个sql脚本,我想在java程序中执行。它需要3个参数:dropper_id,to_char(begin_dt),to_char(end_dt)。我将如何做到这一点?如何在Unix中的java中执行sql脚本文件

该程序在Unix服务器上进行。

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

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

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

回答

1

你可以做,使用JDBC和PreparedStatement,看到这些教程:

下面是一些例子:

如果这两个Java应用程序和SQL位于同一台服务器上,那么你只需要加载和执行上面给出。见的例子在这里:

如果它只是运行的SQL(即你的应用程序的整个目的是运行SQL和别的什么也不做),你可能想看看替代解决方案,如使用Ant来完成任务,请参阅:

或使用任何为你的数据库命令行实用工具,可以看一些例子在这里:

这在很大程度上取决于你的情况,所以你必须看看你的案例中重要的是决定走哪条路。

+0

SQL脚本也位于Unix服务器上的描述,而不是在数据库 – Mike 2012-02-20 18:30:26

1

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

但是,如果你有一个理由不使用JDBC,你可以使用的ProcessBuilder在这个问题How To Execute Native Commands In Java?