持久化Java对象有哪些轻量级选项?我正在寻找最简单的解决方案。我不希望任何花哨的特征只是简单的东西,与合理简单的对象(一些集合,关系和简单的继承)一起工作,并且不会给现有的代码库带来太多明显的复杂性(如果有的话)。我所知道的选项包括Hibernate和EMF这样的框架,但它们听起来(并且经验丰富)过于复杂和耗时。我喜欢开箱即用的东西,最好是面向dababase的文件导向,我可以把它放在我简单的旧Java对象之上。
发布于 2018-09-20 08:42:32
尝试简单的XML持久性http://simple.sourceforge.net,非常简单,无需配置。只需获取现有的POJO并对其进行注释,然后就可以将它们读写到文件中。支持循环对象图以及所有Java集合。它可以像这样使用。
Serializer serializer = new Persister();
MyObject object = serializer.read(MyObject.class, new File("file.xml));
serializer.write(myInstance, new File("file.xml"));
这是一种非常轻量级的方法,除了标准的Java 1.5之外没有任何依赖性。与其他对象相比,如JAXB,XStream,Castor等XML技术,它依赖于大量其他项目。简单XML非常轻量级且内存效率高。
发布于 2018-09-20 09:50:06
ObjectOutputStream和ObjectInputStream可以执行此操作。它内置于Java中,允许非常轻松地序列化/反序列化对象。关于这些的坏处是,如果更改对象,则无法导入现有的旧对象,必须考虑一种与可能已经保存在用户计算机上的现有对象保持兼容的方法,例如向类中添加版本号并创建将旧对象转换为新对象的功能。
更多信息:
编辑:也可以考虑立即将所有类添加以下属性。这可能允许然后向类添加属性,并仍然能够加载旧的Object文件。在RMI-land中,这可行,但我不确定文件,不要删除属性
static final long serialVersionUID = 1L;
https://stackoverflow.com/questions/-100000786
复制相似问题