最近,我创建了一个项目,管理住在宿舍的学生的详细信息,并存储有关他们支付的费用的所有详细信息。
我正在使用Netbeans IDE为数据库支持提供所需的GUI和ORACLE10g。
我想知道如何将这两个组件组成一个可执行文件
例如,现在,当我将程序从一个系统导出到另一个系统时,我必须在新系统中从头创建(只有一次)DATABASE,然后我必须重复所有查询以获得与原始系统相同的数据。 />
有没有其他方法可以自动完成上述任务(即从可执行文件中完成)?
我正在使用Windows7。
答案 0 :(得分:2)
我认为Oracle不会允许您捆绑Oracle数据库和您的程序,而无需通过他们的安装程序并接受他们的许可。
您可以通过一种方式更改应用程序,使您能够以静默方式配置已安装的Oracle实例,但Oracle的安装将保持单独的任务。
如果Oracle的实例已经存在,那么您有两个选择,其中一个不太可能在大型公司中工作(至少我知道的那些)。 您的应用程序可以检查数据库是否已存在所需的表(但即使这样,您也需要知道服务器的名称,连接到数据库的模式和用户名和密码)。 如果表不存在,您可以从程序内部创建表和索引。但这意味着您的应用程序连接用户需要具有相当高的权限。许多公司不授予此类权限,因为在其余的应用程序生命周期中它们不是必需的。 另一种方法是创建DDL脚本,基本上它们会触发您的应用程序所使用的相同的CREATE TABLE / INDEX语句,但它们由数据库管理员运行。
如果你真的想捆绑包含模式的应用程序和数据库,你应该选择可嵌入的东西。 Java有很多数据库系统,你可以在stackoverflow上找到它们(H2,Derby,...) 否则,您将永远无法获得应用程序的“即插即用”体验,因为需要更多或更少的步骤才能正确设置它。
将您的应用程序转换为单个可执行文件是Install4J等程序的任务,这里可以找到许多类似的产品 - 您猜对了 - 也是在stackoverflow上。
答案 1 :(得分:0)
您应该创建* .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');
另一种方法是使用可在this link找到的Oracle数据库导出/导入工具(导出/导入现有数据库而不是SQL格式)。