Создание установщика для программы Java с базой данных - PullRequest
3 голосов
/ 08 июля 2011

Недавно я подал заявку на использование Swing, AWT и JDBC, которая управляет некоторой базой данных.Я использовал PostgreSQL в качестве бэкэнда с драйверами JDBC для подключения к базе данных.Я хочу создать программу установки / установки, чтобы приложение можно было установить и использовать на любом компьютере.Моя проблема в том, что я не знаю, как интегрировать базу данных вместе?

Любая помощь будет оценена.

Ответы [ 3 ]

4 голосов
/ 08 июля 2011

Написание установщика, который также управляет установкой БД, сам по себе является проектом.Большой вопрос в том, нужно ли вам устанавливать PostgreSQL с нуля, или вы скажете пользователю сначала установить его самостоятельно?

Я попытался сделать что-то подобное, и в итоге я создал сборку с NSIS, которая включаетPostgres и JRE в комплекте установки вместе с моей программой.Установщик копирует все в место установки пользователя и создает все необходимые файлы конфигурации.

Самая большая проблема, с которой я столкнулся, заключалась в том, что у меня было несколько опций конфигурации, которые нужно было представить пользователю, что потребовало бы много времени на программирование.в NSIS.Итак, я изменил сценарии сборки ANT, которые я уже написал, для создания проекта.Затем NSIS копирует JRE во временную папку и запускает графический интерфейс установщика Java , который я написал вместо этого, который собирает всю информацию о конфигурации и запускает ANT в фоновом режиме.

Если вы не используетене нужно много настраивать, или то, что вам нужно настроить, не имеет много опций, тогда вы, вероятно, можете делать все непосредственно в NSIS.Но имейте в виду, что вам тоже нужно быть в безопасности.Как вы создаете нового пользователя для запуска Postgres?Как насчет прав доступа к каталогу для вашей установки?Кто может запускать и останавливать БД, кто может читать файлы БД и т. Д.?

3 голосов
/ 08 июля 2011

Возьмите урок из большинства коммерческих приложений, которые имеют компонент базы данных.Обычно они требуют, чтобы база данных была установлена ​​/ настроена заранее, и предоставляют сценарии БД для своих поддерживаемых поставщиков.Есть много причин для этого.Большинство из них связаны с тем, что организации нравится управлять своими собственными базами данных.Часто это связано с ограничениями компании в отношении безопасности, обслуживания и т. Д. Кроме того, один и тот же процесс базы данных может совместно использоваться многими различными программами (если вы устанавливаете два экземпляра своего приложения, хотите ли вы иметь две установки базы данных?).

Большинство людей (особенно сетевые администраторы) не хотели бы, чтобы приложение, работавшее вокруг установки мошеннических DMBS на их компьютере.

Я бы не стал тратить кучу времени на попытки установить базу данных во время установки.ваш процесс установки.Зачем изобретать велосипед, если поставщик уже создал для вас процесс установки?Вместо этого установите базу данных заранее и вместо этого сфокусируйте установщик на запуске необходимых сценариев, чтобы ваше приложение могло подключиться к ней при первом запуске.Это означает, что у вашего установщика есть необходимые драйверы, информация о соединении и учетные данные для связи с базой данных для ее инициализации.После инициализации БД у вас могут появиться дополнительные подпрограммы, которые настраивают установку вашего приложения так, чтобы она указывала на базу данных, которую вы инициализировали во время установки.Использование такого подхода не только будет проще, но и позволит вашему приложению делать более интересные вещи, например, подключаться к удаленным базам данных или вообще пропускать инициализацию базы данных и подключаться к существующей базе данных.

0 голосов
/ 08 июля 2011

Может быть, вы можете попробовать чистую базу данных Java, например, hsql, или h2, или derby ....

...