【问题标题】:Embedding mysql in java desktop application在java桌面应用程序中嵌入mysql
【发布时间】:2011-03-24 12:45:33
【问题描述】:

我不清楚有关如何将 mysql 嵌入 Java 桌面应用程序的步骤/配置详细信息,以便可以通过单个可执行文件将它(应用程序)安装在任何机器上,这样做可以设置数据库并提供exe 来运行应用程序。到目前为止,我已经使用 netbeans 构建了我的应用程序,并且我已经使用 mysql 来设置数据库。请进一步指导我。

【问题讨论】:

  • 您在桌面应用程序中嵌入了 mysql?如何?有可能吗?
  • 对我来说似乎也很有用

标签: java mysql database embedded-database


【解决方案1】:

MySQL 不是嵌入式数据库——唯一与之相关的 JAR 是 JDBC 驱动程序。它需要一个安装过程,该过程可能可以通过 Java 编写脚本,但该过程肯定会在您希望它支持的 Java 应用程序之外运行。这意味着,您可以关闭 Java 应用程序,但 MySQL 服务/守护程序仍将运行。

只有libmysqld 是可嵌入的。

有嵌入式数据库 - SQLite、Firebird - 和用 Java 制作的嵌入式数据库 - HSQL、Derby/(不记得以前叫什么了)。我相信 SQL Server Compact Edition 是可嵌入的,而 SQL Server Express/MSDE 则不是。不知道oracle有没有嵌入式版本....

【讨论】:

  • 有一个版本的 MySQL,libmysqld 用于嵌入。但我同意你的看法,因为还有其他数据库更适合这项工作。由于这是 Java,我会推荐 HSQL。
  • @Cesar:谢谢,我不知道 libmysqld
【解决方案2】:

虽然理论上可行,但这并不容易。标准的 MySql 发行版假设您要设置一个通用数据库服务器,与通过 odbc 等连接的客户端应用程序分开。

您可能会更好地查看 HSQL 或 JavaDB 等“纯 Java”选项,这些选项旨在嵌入到 Java 应用程序中,并且几乎不需要“设置”。

另一种可能性是 Sqlite,它只需要一个二进制文件加上 sqljbbc jar 文件。这再次从头开始设计,嵌入到应用程序中,除了为数据库分配文件外,还需要零管理员。

【讨论】:

  • 考虑到有可能,如你所说,能否提一下任何教程链接如何配置它,让它复杂一些吧
【解决方案3】:

我强烈推荐H2。它是一个用 Java 编写的非常快速的嵌入式数据库,我发现它比提到的其他一些数据库(如 HSQL)更易于使用。

编辑:

在H2网站上,可以看到speed comparison of H2 vs Derby, HSQL, MySql等...

Here's information on how to backup the database.

【讨论】:

  • h2可以管理大量数据吗?我们可以轻松备份吗?
  • 备份 h2 相当容易。上次我尝试它时,H2 并没有像 MySql 那样很好地扩展到千兆字节的数据。我认为它应该能够处理 5000 行,但没有太多麻烦。
【解决方案4】:

如果您想要一个带有 java 的嵌入式数据库,那么请使用一个用 Java 编写的嵌入式数据库。我知道 Apache Derby 可以嵌入,显然也可以嵌入 H2。

你需要数据库处理多少数据?

【讨论】:

  • 我正在开发一种会计软件,它必须跟踪支付情况,然后相应地生成报告。现在什么样的嵌入式数据库可以满足我的要求?
  • 附带对您期望的数据量的估计。只是大小 - 1、1000、1000000 等 - 用于表的数量、每个表中的行、每个表的数据总量等。
  • 行数可以为 5k,然后将它们移动到存档...现在你能帮忙吗?
  • 这个数据量对于嵌入式数据库来说应该不会太多。就我个人而言,我会尝试使用 Apache Derby,并了解数据库表的文件将存储在哪里,这样我就可以将它们放在正确的位置。
【解决方案5】:

看看http://dev.mysql.com/doc/refman/5.0/en/connector-mxj.html。我不记得确切的细节,但我能够在桌面应用程序中嵌入 MySQL db,而无需用户单独安装。

关键类是com.mysql.management.MysqldResource。

这是一个例子,http://dev.mysql.com/doc/refman/5.0/en/connector-mxj-configuration-java-object.html

mysql-connector-mxj-gpl-db-files.jar 文件包含所有平台的 MySQL 安装文件。如果您知道哪个是您的目标平台,您可以从 jar 中剥离其他平台版本,以减少最终用户的下载大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-27
    • 2013-11-11
    • 2023-03-18
    • 2014-11-12
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多