2012-02-20 59 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?