【问题标题】:Hibernate single file databases: setup for thin clientHibernate 单文件数据库:瘦客户端的设置
【发布时间】:2010-08-05 11:10:13
【问题描述】:

我正在开发一个 Java Swing 应用程序,它通过 Hibernate 保存信息,目前使用 PostgreSQL。现在,我想简化客户端上的数据库设置,我正在考虑单文件数据库。我使用的数据库比较小,比较简单,所以没有特殊要求。我只求一个稳定可靠的。

有哪些与 Hibernate 兼容的可用解决方案?最终的应用程序不应该有任何安装步骤,例如安装数据库服务器等。完美的场景是解压后的 .zip 文件,一切准备就绪,就像 Eclipse 一样。

谢谢!

【问题讨论】:

标签: java hibernate deployment installation


【解决方案1】:

Java 数据库,如嵌入模式的JavaDB(又名Derby)、HSQLDB 或更新的H2(由HSQLDB 的原作者)都是可能的候选对象。在它们之间,JavaDB 往往被认为是最健壮的(完整的 ACID、抗故障的健壮性、无限的数据库大小等),并且是我的选择。

以下是原因的简要总结:

  • H2 非常有趣,我将它用于测试(它的compatibility mode 功能非常棒),但我不确定它是否适合生产使用。

  • H2 和 HSQLDB 比 Derby 快,因为它们不会在提交时将数据同步到磁盘 - 而 Derby 会。所以性能来自于缺乏耐用性。如果您更改此行为,they all hit the some bottleneck: disk IO

  • HSQLDB only supports dirty read,事务查看来自其他事务的未提交值。

  • HSQLDB 不完全Atomic,事务可以部分(WTF?)提交

  • Derby 功能更强大,具有符合规范的驱动程序,可很好地扩展。

不要误解我的意思,我并不是说 HSQLDB 不好,但您需要知道您在处理什么以及在哪个上下文/应用程序中处理。有时速度更重要(例如对于单元测试),有时它是数据完整性。如果您是后一种情况,Java DB 是 IMO 更好的选择。

下面的一些参考文献已有 2/3 年的历史,但我不知道有任何革命。如果我犯了一些错误,请告诉我,我很乐意更新我的答案以使其准确无误。

参考文献

【讨论】:

  • 选择 Java DB 而不是 HSQLDB 的原因?
【解决方案2】:

我长期使用 HSLQDB 和 hibernate。对于基本的小型数据库需求,它真的是快速、易于使用的应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-12
    • 1970-01-01
    • 2019-07-20
    • 2016-01-08
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 2013-07-26
    相关资源
    最近更新 更多