h2嵌入式数据库不嵌入/替代嵌入数据库

时间:2013-09-20 08:13:43

标签: java mysql sql database eclipse

所以我得到另一个线程的评论,在我的java应用程序中使用h2作为嵌入式数据库。基本上,我需要.jar文件在另一台计算机上运行,​​而无需在他们的机器上安装sql server或h2。它必须能够使用jar运行并且它会自动访问数据库,所以db必须随jar一起提供。

我该怎么做?我正在尝试使用h2。

带有h2的应用程序将在我的机器上运行,eclipse IDE已关闭,但只要我放入jar文件(带有所需库的子文件夹,例如h2)并运行它,它就什么都不做。< / p>

所以我从cmd运行了jar文件,然后它找到了我无法找到表的错误。那么如何将数据库作为嵌入式应用程序内部运送?

我看到另一个项目有一个微软访问数据库文件及其应用程序文件。 是否有可能在thge应用程序的根目录中有一个数据库文件并使用它,然后能够在microsoft访问,phpmyadmin或workbench中编辑它?请告知我,因为我不知道如何做到这一点。

请注意,我对Java相对较新。

提前致谢

1 个答案:

答案 0 :(得分:0)

如果找不到数据库,则发送数据库配置以创建数据库,然后在启动时运行CREATE TABLE并插入SQL脚本以在启动时构建数据库。我用Derby做了很多这样的事情,所以我会用它作为参考点。

要执行此操作,您需要将;create=true附加到您的数据库网址,如下所示。

<connection-url>jdbc:derby:C:/mydb;create=true;characterEncoding=utf-8</connection-url>

这将确保已创建数据库。正如您现在所知道的那样,数据库已经创建,您可以通过运送.sql文件或类似的东西来构建结构和内容,如果表不存在则会在启动时运行它。这为您提供了额外的功能,您可以在每次发货时轻松部署应用程序,因为它可以在首次部署时检查表是否存在,并在需要时创建它们。