在java桌面应用程序中嵌入mysql

我不清楚有关如何在Java桌面应用程序中嵌入mysql的步骤/配置细节,以便它(应用程序)可以通过单个可执行文件安装在任何机器上,这样做可以设置数据库并提供运行的exe应用程序。现在我已经使用netbeans构建了我的应用程序,我使用mysql设置database.plz进一步指导我。

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

只有libmysqld是可嵌入的。

有嵌入式数据库 – SQLite,Firebird – 以及用Java制作的嵌入式数据库 – HSQL,Derby /(不记得以前称之为)。 我相信SQL Server Compact Edition是可嵌入的,而SQL Server Express / MSDE则不是。 我不知道Oracle是否有嵌入式版本….

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

编辑:

在H2网站上,您可以看到H2与Derby,HSQL,MySql等的速度比较 ……

以下是有关如何备份数据库的信息 。

虽然理论上可能并不容易。 标准的MySql发行版假设您希望设置一个通用数据库服务器,该服务器与通过odbc等进行组合的客户端应用程序分开。

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

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

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

关键类是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中剥离其他平台版本,以减少最终用户的下载大小。

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

您需要数据库处理多大的数据量?