如何将数据和程序集成到单个可执行文件中?

How can I integrate data and program into single executable file?

最近我创建了一个项目来管理住在宿舍的学生的详细信息,并存储有关他们支付的费用的所有详细信息。

我正在使用 Netbeans IDE 为数据库支持提供所需的 GUI 和 ORACLE10g。
我想知道如何将这两个组件合并为一个可执行文件。
例如现在,当我将我的程序从一个系统导出到另一个系统时,我必须在新系统中从头开始创建(尽管只有一次)数据库,然后我必须重复所有查询以获得与原始系统相同的数据。
有没有其他方法可以自动完成上述任务(即从可执行文件)?
我正在使用 Windows7.

我认为 Oracle 不会允许您在不通过他们的安装程序并接受他们的许可的情况下将 Oracle 数据库和您的程序捆绑在一起。

您可以更改您的应用程序,使您能够静默配置已安装的 Oracle 实例,但 Oracle 的安装将保留为单独的任务。

如果 Oracle 实例已经存在,您有两种选择,其中一种不太可能在大型公司(至少我知道的公司)中工作。 如果它需要的表已经存在,您的应用程序可以检查数据库(但即便如此,您也需要知道服务器的名称、架构以及连接到数据库的用户名和密码)。 如果表不存在,您可以从程序内部创建表和索引。但这意味着您的应用程序用来连接的用户需要具有相当高的权限。许多公司不授予此类权限,因为在应用程序的剩余生命周期中它们不是必需的。 另一种方法是创建 DDL 脚本,基本上它们会触发与您的应用程序相同的 CREATE TABLE / INDEX 语句,但它们是由数据库管理员运行

如果您真的想捆绑包含模式的应用程序和数据库,您应该选择可嵌入的东西。 Java 有很多数据库系统,您可以在 Whosebug 上找到它们(H2、Derby,...) 否则,您将永远无法获得 "plug and play" 应用程序体验,因为正确设置它需要或多或少的步骤。

然后将您的应用程序变成单个可执行文件是像 Install4J 这样的程序的任务,在这里也可以在 - 你猜对了 - 在 Whosebug 上找到许多类似的产品。

您应该创建 *.sql 文件模板,它将在新部署的 ORACLE10g 中为您创建数据库和所有表。

在装有 Oracle 数据库的新机器上,您只需 运行 导入该模板 SQL 文件,它将自动创建所有表。

SQL 文件可能看起来像(语法可能与 ORACLE10g 方言不同):

--
-- codes
--

CREATE TABLE IF NOT EXISTS `codes` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `description` tinytext,
  PRIMARY KEY (`idmeteor`)
) DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;

--
-- Dump of `codes`
--

INSERT INTO `codes` (`id`, `description`) VALUES
(1, 'X'),
(2, 'Y'),
(3, 'Z'),
....
(9, 'W');

另一种方法是使用 exporting/importing Oracle 数据库工具,可以在 this link 找到(export/import 现有数据库不是 SQL 格式)。