使用数据库为Java程序创建安装程序

时间:2011-07-08 18:34:58

标签: java postgresql jdbc installer

最近我在使用Swing,AWT和JDBC管理一些数据库时做了一个应用程序。我使用PostgreSQL作为后端,使用JDBC驱动程序连接到数据库。我想要做的是创建一个安装程序/安装程序,以便可以在任何PC上安装和使用该应用程序。我的问题是我不知道如何整合数据库?

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:4)

编写一个也管理数据库安装的安装程序本身就是一个项目。最大的问题是你需要从头开始安装PostgreSQL还是先告诉用户自己安装它?

我试图做类似的事情,我最终做的是使用NSIS构建一个安装程序,其中包括Postgres和安装包中的JRE以及我的程序。安装程序将所有内容复制到用户的安装位置,并创建所有必需的配置文件。

我遇到的最大问题是我有一些配置选项要呈现给用户,这会在NSIS中进行大量编程。所以,我修改了我已编写的ANT构建脚本来构建项目。然后NSIS会将JRE复制到临时位置并启动我编写的 Java 安装程序GUI,它会收集所有配置信息并在后台启动ANT。

如果您没有太多配置或您需要配置的内容没有很多选项,那么您可以直接在NSIS中执行所有操作。但是,请记住,您也需要保持安全意识。你是如何创建一个新用户来运行Postgres的?你安装的目录权限怎么样?谁可以启动和停止DB,谁可以读取db文件等?

答案 1 :(得分:3)

从大多数具有数据库组件的商业应用程序中吸取教训。通常,它们要求事先安装/配置数据库,并为其支持的供应商提供db脚本。这有很多原因。其中大多数都与组织喜欢管理自己的数据库这一事实有关。这通常是因为他们在安全性,维护等方面有公司限制。此外,可以在许多不同的程序之间共享单个数据库进程(如果安装了两个应用程序实例,您是否需要安装两次数据库?)。

大多数人(特别是网络管理员)不希望在他们的计算机上安装流氓DMBS的应用程序。

在安装过程中,我不会花费大量时间尝试安装数据库。当供应商为您创建安装过程时,为什么要重新发明轮子?而是提前安装数据库,并将安装程序的重点放在运行必要的脚本上,以便应用程序可以在第一次启动时连接到它。它的作用意味着让您的安装程序具有必要的驱动程序,连接信息和凭据以与数据库通信以初始化它。初始化数据库之后,您可以使用其他例程来配置应用程序安装,使其指向您在安装期间初始化的数据库。采用这种方法不仅更容易,而且它将允许您的应用程序执行更多有趣的操作,例如连接到远程数据库或一起跳过数据库初始化并连接到现有数据库。

答案 2 :(得分:0)

也许你可以尝试一个纯java数据库,比如hsql,或h2,或者derby ....