Как выполнить файл сценария sql в Java в Unix - PullRequest
0 голосов
/ 20 февраля 2012

У меня есть этот 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 ]

1 голос
/ 20 февраля 2012

В общем, правильный способ выполнения команд базы данных в приложении Java - использовать соединение с базой данных на основе Java, используя JDBC или ORM более высокого уровня, например Hibernate, Они предпочтительны по ряду причин, наиболее важно потому, что они могут сообщать и обрабатывать пути ошибок гораздо проще, чем внешняя команда.

Однако, если у вас есть причина не использовать JDBC, вы можете использовать ProcessBuilder, как описано в этом вопросе Как выполнять собственные команды в Java?

1 голос
/ 20 февраля 2012

Вы можете сделать это, используя JDBC и PreparedStatement, см. Следующие учебные руководства:

Вот несколько примеров:

Еслии ваше Java-приложение, и SQL-файл расположены на одном и том же сервере, тогда вам просто нужно загрузить его и выполнить, как указано выше.Смотрите примеры здесь:

Если он просто запускает SQL (т.е. вся цель вашего приложения - запустить этот SQL и ничего не делать), вы можете захотеть взглянуть на альтернативныйРешения, такие как использование Ant для выполнения задачи, см. здесь:

или использование любой другой утилиты командной строки базы данных, см. некоторые примеры здесь:

Это очень сильно зависит от ваших обстоятельств, поэтому вам придется посмотреть, что важно вваше дело, чтобы решить, какой путь.

...