【问题标题】:Lightest Database to be packed with an application与应用程序一起打包的最轻量的数据库
【发布时间】:2011-01-26 18:08:12
【问题描述】:

我正在开发一个 Java 桌面应用程序,并且想要一个可以与 Hibernate 一起使用并且可以与应用程序打包在一起的 light database

我打算使用Derby 数据库。它的大小接近 2 MB。但在此之前,我想听听专家对 SO 的看法。

它可以与Hibernate 一起使用吗?

实际上,我是 Hibernate 的新手,并且正在研究它需要 Dialect 用于数据库,所以 Hibernate 是否有 Derby 的方言?

【问题讨论】:

标签: java database hibernate orm embedded


【解决方案1】:

JavaDB(Sun 支持的开源 Apache Derby 发行版)、HSQLDB(不太活跃)和H2successor of HSQLDB)都是 100% 可嵌入 Java 的数据库引擎,并且可以所有 与 Hibernate 一起使用(即它们有方言)。参考this pagethis one

HSQLDB 在所有这些数据库中占用空间最小(~700 KB)。但是在功能方面(参见this comparison),H2 是明显的赢家,它的占用空间(~1 MB)仍然小于 Derby 的占用空间(~2 MB)。

最终选择取决于您的需求,但 H2 是功能和大小的良好折衷(换句话说,是一个大竞争对手)。看看上面提到的比较。

【讨论】:

  • 非常翔实的答案.. 我将使用 H2,但在此之前有几个小问题: 1. 我可以免费将 H2 嵌入到我的商业应用程序中吗(我检查了该网站,发现它是免费的但仍想与您确认)2。您对 SQLLite 和 Firebird 对 H2 有何看法
  • @Yatendra 1. 是的,你可以 (h2database.com/html/license.html) 2. Firebird 和 SQLite 是好产品,但不是 100% Java(即不能在同一个 Java 进程中运行),这会使事情发生更复杂。我会去 H2。
  • 我喜欢它,它就是我所需要的
【解决方案2】:

你也可以试试Firebird

有嵌入式版本和客户端/服务器模式版本

这里是休眠的链接supported database

【讨论】:

  • 我会说不。火鸟很棒,但没有那么轻。具有基本最低要求文件的现代嵌入式 firebird 大约 6mb,没有 db 本身
【解决方案3】:

另一种选择是 SQLite。

Hibernate and SQLite

【讨论】:

  • 是否有纯 Java 版本的 SQLite?还是原生版本足够容易部署?
  • sqljet.com 下有一个,如果你不喜欢这个,你可以使用下面的 JDBC 驱动:zentus.com/sqlitejdbc
【解决方案4】:

我会推荐HSQLDB。它小而快,并且在 Hibernate 中运行良好。 Hibernate 也有用于 Derby DB 的方言(虽然没有使用过,而且我认为 Hibernate 还没有正式支持它)。

【讨论】:

  • 我读到了 HSQLDB。他们说它是内存数据库,不需要安装和配置。如果它保留在内存中,那么它应该为数据库服务器本身消耗大量内存,并为我们将插入其中的数据消耗大量内存。可能是我将上述语句解释为错误的,但我在 HSQLDB 站点上没有找到太多信息。我在 Hibernate 教程中找到了上述信息。如果错了请纠正我?此外,如果它保留在内存中,那么数据如何在应用程序的多次运行之间持续存在。
  • 没有 HSQLDB 可以作为内存数据库运行,但您也可以将数据保存在磁盘上(基本上只是一个配置设置)。
猜你喜欢
  • 1970-01-01
  • 2011-07-24
  • 1970-01-01
  • 2013-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多