2011-07-08 91 views
3

最近我做了一個使用Swing,AWT和JDBC管理某些數據庫的應用程序。我使用PostgreSQL作爲JDBC驅動程序的後端連接到數據庫。我想要做的是創建一個安裝程序/安裝程序,以便應用程序可以在任何PC上安裝和使用。我的問題是我不知道如何整合數據庫?使用數據庫創建Java程序的安裝程序

任何幫助,將不勝感激。

+0

你用什麼作爲你的構建工具?螞蟻? Maven的?其他? –

回答

3

採取從具有數據庫組件大多數商業應用的一課。通常他們要求事先安裝/配置數據庫,併爲其支持的供應商提供數據庫腳本。這有很多原因。其中大部分與組織喜歡管理自己的數據庫有關。這通常是因爲他們在安全性,維護等方面有公司限制。另外,單個數據庫進程可能會在許多不同的程序之間共享(如果您安裝應用程序的兩個實例,是否需要兩次安裝數據庫?)。

大多數人(特別是網絡管理員)不希望在他們的機器上安裝流氓DMBS的應用程序。

我不會花費大量的時間在安裝過程中嘗試安裝數據庫。爲什麼在供應商已經爲您創建安裝過程時重新發明輪子?相反,請提前安裝數據庫,然後將安裝程序的重點放在運行必要的腳本上,以便應用程序可以在首次啓動時連接到該腳本。它的作用意味着讓安裝程序具有必要的驅動程序,連接信息和憑據以與數據庫通信以使其初始化。數據庫初始化完成後,您可以使用額外的例程來配置您的應用程序安裝,使其指向您在安裝期間初始化的數據庫。採用這種方法不僅更容易,而且它還將允許應用程序執行更多有趣的事情,如連接到遠程數據庫或一起跳過數據庫初始化並連接到現有數據庫。

4

編寫同時管理數據庫安裝的安裝程序本身就是一個項目。最大的問題是你是否需要從頭開始安裝PostgreSQL,或者你會告訴用戶先安裝它自己?

我試圖做類似的事情,而且我最終做的是在安裝包中隨我的程序一起構建包含Postgres和JRE的NSIS安裝程序。安裝程序將所有內容複製到用戶的安裝位置並創建所有必需的配置文件。

我遇到的最大問題是我有許多配置選項向用戶展示,這將在NSIS中花費很多編程。所以,我修改了我已經編寫的用於構建項目的ANT構建腳本。然後,NSIS所做的就是將JRE複製到臨時位置,然後啓動一個Java安裝程序GUI,而不是收集所有配置信息並在後臺啓動ANT。

如果您沒有太多配置或者您需要配置的選項沒有多少選項,那麼您可以直接在NSIS中執行所有操作。但是,請記住,您也需要保持安全意識。你如何創建一個新用戶來運行Postgres?你安裝的目錄權限是什麼?誰可以啓動和停止數據庫,誰可以讀取數據庫文件等?

0

也許你可以嘗試一個純Java的數據庫,例如HSQL,或H2,或德比....

相關問題