用于 Java 桌面应用程序的最佳数据库是啥 [关闭]

Posted

技术标签:

【中文标题】用于 Java 桌面应用程序的最佳数据库是啥 [关闭]【英文标题】:What is the best database to use for a Java desktop application [closed]用于 Java 桌面应用程序的最佳数据库是什么 [关闭] 【发布时间】:2011-02-13 14:10:17 【问题描述】:

以下哪些数据库最适合大型桌面应用程序:Firebird、JavaDB、hsqldb? 我需要性能、易用性和完全免费的许可证。

【问题讨论】:

这个问题也有一些很好的讨论:***.com/questions/41233/java-and-sqlite 【参考方案1】:

如果您正在寻找可嵌入的数据库,我的建议是H2(代表 Hypersonic 2,由 HSQLDB 的作者(重新)编写)。请参阅detailed comparison of features 和performances。

使用 100% Java 数据库将允许在同一进程中运行它,并使 IMO 的事情变得更容易。

【讨论】:

@BalusC 我已经放弃了 hsqldb 和 javadb 以支持 H2,我就是喜欢它。而且它的compatibility mode(它可以像 Oracle、DB2 等那样“表现”)非常适合测试。 嘿,这很好。我必须承认,我不知道它代表 Hypersonic 2。那迟早会成为一个新玩具 :) +1 项目维护良好,作者经常参与groups.google.com/group/h2-database 在这种情况下,H2 与 Derby 相比如何? 好吧,我的选择是在 Firebird 和 H2 之间,哪个更好?【参考方案2】:

让我在 Postgres 上推荐你(http://www.postgresql.org/ ),这是我所知道的最好的免费软件数据库之一。

我在之前的项目中使用过这个数据库,其中我们在模式中保存了大约 20 个表,最大的表有大约 100,000 行,总数据量并不大。

这个项目在生产中运行了 2 年多,没有任何特殊问题。

谢伊

【讨论】:

如果他要发布桌面应用程序,最好不要让用户安装单独的数据库应用程序,因此 OP 给出了 JavaDB 和 hsqldb 的建议,这两者都可以嵌入到 Java 应用程序中。不过,我不确定 Firebird 是如何融入其中的。当然,这绝不是对 Postgres 的挖掘,在我看来,当需要数据库时,这是显而易见的选择:桌面或服务器。【参考方案3】:

我的建议是 H2。我最近迁移了一个数据库(来自 MS SQL 服务器),其中包括 2 个较大的表,每个表托管 >200 万行。首先我尝试了 Derby,但遇到了问题(不仅仅是性能) - 然后我切换到 H2 并成功迁移了所有内容。

【讨论】:

【参考方案4】:

我认为为此使用嵌入式数据库会更好。 HSQLDB 或 H2 可以工作,SQLite 也可以。 SQLite 在 Java 世界之外非常流行(例如,它被 Mozilla 项目使用)。我对 JavaDB 不熟悉,因此无法谈论它的功能。

众所周知,SQLite 非常快。

【讨论】:

【参考方案5】:

Firebird 是非常好的数据库,尤其适用于桌面应用程序

有很好的java驱动。

【讨论】:

特别适用于“大型桌面应用程序”。 Firebird 可扩展到数百 GB 甚至更多。【参考方案6】:

取决于要求和数据量。我最后的选择是 mysql,它很舒服(swing 应用)

【讨论】:

【参考方案7】:

我会选择 不是 Java 特定的 DBMS。有一天,您可能希望与 C++ 或 .NET 应用程序共享您的数据。如果它不需要是客户端/服务器,请考虑 SQLite 或 H2。如果确实如此,请考虑 Postgres。所有这些都有 ODBC 驱动程序和/或 Java 以外的特定语言的驱动程序。

【讨论】:

以上是关于用于 Java 桌面应用程序的最佳数据库是啥 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将 .NET Core 桌面应用程序连接到 Azure SQL Server 的最佳方式是啥

用于在 Java 中读取文件的最佳/最简单的类是啥?

在 Java 的并行线程中写入文件的最佳方法是啥?

从实时视频设备捕获图像以供基于 Java 的应用程序使用的最佳方法是啥?

在 Java 中查询分隔文本文件的最佳工具是啥? [关闭]

在 Java 应用程序中保存数据的最佳方式是啥?