
What's the best way to persist data in a Java Desktop Application?我的桌面应用程序中有一棵大的Java对象,正在尝试确定将它们作为文件持久保存到文件系统的最佳方法。 我曾经有过一些想法:
我很好奇看到别人的想法。我希望我能错过一些比上述方法更简单明了的方法。 以下是从答案中得出的一些其他选择:
我将使用您的最终选择JavaDB(Sun的Derby发行版),并使用对象关系层,例如Hibernate或iBatis。使用前三个方法意味着与开发应用程序功能相比,您将花费更多的时间来构建数据库引擎。 以我的经验,使用嵌入式数据库可能会更好。 SQL虽然不完美,但通常比设计性能良好且可靠的文件格式容易得多。 我没有使用JavaDB,但是我对H2和SQLite感到很幸运。 SQLite是一个C库,在部署方面意味着更多工作。但是,这样做的好处是可以将整个数据库存储在一个跨平台的库中。基本上,它是一种预打包的通用文件格式。 SQLite非常有用,以至于我什至开始使用它而不是脚本中的文本文件。 如果您正在处理一个小的持久性问题,请小心使用Hibernate。它增加了很多复杂性和库开销。如果您要处理大量表,Hibernate确实很棒,但是如果只需要几个表,它可能会很麻烦。 看看Hibernate是连接数据库的一种简单方法。 db4objects可能是最佳选择 来自codehaus.org的XStream
XML序列化/反序列化在很大程度上无需编码。 在http://cjugaustralia.org/?p=61上查看我的用户组演示文稿。 我认为这取决于您的需求。让我们看一下这些选项: 1)立即描述!我什至没有理由。 :) 2)如果您需要简单,快速,一种方法的持久性,请坚持下去。它将按原样保留完整的数据图!注意要保留持久对象的时间。正如您自己指出的那样,版本控制可能是个问题。 3)比(2)慢,需要额外的代码,并且可以由用户编辑。我只会使用它,数据应该由客户端以另一种语言使用。 4)如果仍然需要查询数据,请坚持使用数据库解决方案。 好吧,我想您已经回答了您的问题:) |