我的桌面应用程序中有一个庞大的Java对象树,我正在尝试确定将它们作为文件保存到文件系统的最佳方法.
我的一些想法是:
使用DataOutputStream滚动我自己的序列化程序:这将使我能够最大程度地控制文件中的内容,但代价是对其进行微观管理.
使用ObjectOutputStream及其各种相关类的直接旧序列化:虽然因为我发现数据很脆弱,但我没有卖掉它.更改任何对象的结构会破坏它的序列化实例.所以我被锁定在似乎是一个可怕的版本化噩梦.
XML序列化:它并不那么脆弱,但直接序列化的速度要慢得多.它可以在我的程序之外进行转换.
JavaDB:我考虑过这个,因为我很乐意编写JDBC应用程序.这里的区别在于数据库实例仅在打开或保存文件时保持不变.它并不漂亮但是......如果以后需要,它确实可以迁移到中央服务器架构,它引入了以更简单的方式查询数据模型的可能性.
我很想知道其他人的想法.而且我希望我错过了一些比上面更明显,更简单的方法.
以下是从以下答案中剔除的更多选项:
对象数据库 - 具有比ORM方法少得多的基础结构,并且比XML方法执行速度更快.谢谢aku
Brian Matthe.. 5
我会选择最终选项JavaDB(Sun的Derby发行版)并使用像Hibernate或iBatis这样的对象关系层.使用前三个方法意味着您将花费更多时间来构建数据库引擎而不是开发应用程序功能.
我会选择最终选项JavaDB(Sun的Derby发行版)并使用像Hibernate或iBatis这样的对象关系层.使用前三个方法意味着您将花费更多时间来构建数据库引擎而不是开发应用程序功能.