【问题标题】:How do I create an executable with a MySQL database inside it?如何创建一个包含 MySQL 数据库的可执行文件?
【发布时间】:2019-01-17 08:26:02
【问题描述】:

我想在 Eclipse 中创建我的 java 应用程序的可执行文件,但我不想托管我的数据库,而是想在创建可执行文件时将其放入应用程序的文件夹中,我需要做什么来完成此操作,以及,连接数据库的代码类的路径会是怎样的?

提前致谢。

【问题讨论】:

  • 你可以看看 SQLite 或类似的解决方案。然而,目前的问题太宽泛了,搜索库等也被认为是题外话。

标签: java sql database eclipse


【解决方案1】:

数据库要么位于用户的本地机器上(用于开发),要么位于互联网上的服务器上(用于实际使用)。您可以创建一个模仿数据库的 Java 类,但不可能将数据库放入可执行文件中。

【讨论】:

  • 哦,有没有办法免费托管数据库?
  • 是的,考虑在本地计算机上设置 MySQL、MongoDB 或任何其他类型的数据库
  • 完全有可能。据我所知,至少有三个数据库可以做到这一点:H2、HyperSQL 和 Apache Derby。
【解决方案2】:

你不能用 MySQL 做到这一点,因为 MySQL 只在“服务器模式”下运行。

要执行您想要的操作,您需要将数据库更改为以下之一:

  • H2。见documentation。网址:jdbc:h2:file:<path>/<database>
  • HyperSQL。见documentation。网址:jdbc:hsqldb:file:<path>/<database>
  • Apache 德比。见documentation。网址:jdbc:derby:<path>/<database>

在所有三个数据库中,相应的 JDBC 驱动程序包括整个数据库引擎本身。因此,只需连接到数据库,您将获得一个完全运行的实例。

现在,这些数据库可以在多种模式下工作:

  • 嵌入式+文件系统:JDBC URL 将包含一个[相对或绝对] 路径,指向一个保存数据库表和数据的目录。
  • Embedded+Memory:JDBC URL 将指定所有数据将存储在内存中,一旦连接关闭就会丢失。
  • 服务器模式:JDBC URL 将指向数据库引擎正在运行的[external/remote] host:port。这类似于 MySQL。

根据您的问题,第一个选项似乎是您需要的选项。作为个人说明,我发现与 Derby 相比,H2 和 HyperSQL 更容易设置,因为它们都包含在一个 JAR 文件中。

【讨论】:

  • 非常感谢!我会研究你给我的选项,h2 似乎很容易设置。
猜你喜欢
  • 2011-10-22
  • 1970-01-01
  • 2021-05-30
  • 1970-01-01
  • 2018-08-11
  • 1970-01-01
  • 2012-10-14
  • 2015-09-30
  • 2021-10-21
相关资源
最近更新 更多