Как выполнить файл сценария sql на java в Unix

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

person Mike    schedule 20.02.2012    source источник


Ответы (2)


Вы можете сделать это с помощью JDBC и PreparedStatement, см. Эти руководства:

Вот некоторые примеры:

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

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

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

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

person icyrock.com    schedule 20.02.2012
comment
сценарий sql также находится на сервере Unix, а не в базе данных - person Mike; 20.02.2012

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

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

person Larry OBrien    schedule 20.02.2012