Hibernate单文件数据库:瘦客户端的设置

时间:2010-08-05 11:10:13

标签: java hibernate deployment installation

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

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

谢谢!

2 个答案:

答案 0 :(得分:6)

嵌入模式下的JavaDB(又名Derby),HSQLDB或更新的H2(由HSQLDB的原作者)等Java数据库都是可能的候选者。在它们之间,JavaDB往往被认为是最强大的(完整的ACID,对失败的鲁棒性,无限的数据库大小等)并且将是我的选择。

以下是原因的快速摘要:

  • H2非常有趣,我用它进行测试(它的compatibility mode功能真的很棒),但我不确定它的生产用途是否成熟。

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

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

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

  • 德比功能更强大,符合规格的驱动程序,可以很好地扩展。

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

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

参考

答案 1 :(得分:1)

我已经将HSLQDB与hibernate结合使用了很长时间。它非常快速,易于使用,适用于基本的小数据库要求。