首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有什么样的轻量级选项可以持久化Java对象?

有什么样的轻量级选项可以持久化Java对象?
EN

Stack Overflow用户
提问于 2018-09-20 00:16:28
回答 2查看 0关注 0票数 0

持久化Java对象有哪些轻量级选项?我正在寻找最简单的解决方案。我不希望任何花哨的特征只是简单的东西,与合理简单的对象(一些集合,关系和简单的继承)一起工作,并且不会给现有的代码库带来太多明显的复杂性(如果有的话)。我所知道的选项包括Hibernate和EMF这样的框架,但它们听起来(并且经验丰富)过于复杂和耗时。我喜欢开箱即用的东西,最好是面向dababase的文件导向,我可以把它放在我简单的旧Java对象之上。

EN

回答 2

Stack Overflow用户

发布于 2018-09-20 08:42:32

尝试简单的XML持久性http://simple.sourceforge.net,非常简单,无需配置。只需获取现有的POJO并对其进行注释,然后就可以将它们读写到文件中。支持循环对象图以及所有Java集合。它可以像这样使用。

代码语言:javascript
复制
Serializer serializer = new Persister();
MyObject object = serializer.read(MyObject.class, new File("file.xml));

代码语言:javascript
复制
serializer.write(myInstance, new File("file.xml"));

这是一种非常轻量级的方法,除了标准的Java 1.5之外没有任何依赖性。与其他对象相比,如JAXB,XStream,Castor等XML技术,它依赖于大量其他项目。简单XML非常轻量级且内存效率高。

票数 0
EN

Stack Overflow用户

发布于 2018-09-20 09:50:06

ObjectOutputStream和ObjectInputStream可以执行此操作。它内置于Java中,允许非常轻松地序列化/反序列化对象。关于这些的坏处是,如果更改对象,则无法导入现有的旧对象,必须考虑一种与可能已经保存在用户计算机上的现有对象保持兼容的方法,例如向类中添加版本号并创建将旧对象转换为新对象的功能。

更多信息:

编辑:也可以考虑立即将所有类添加以下属性。这可能允许然后向类添加属性,并仍然能够加载旧的Object文件。在RMI-land中,这可行,但我不确定文件,不要删除属性

代码语言:javascript
复制
static final long serialVersionUID = 1L;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档