持久化java对象最简单的方法是什么?

Jam*_*mes 7 java persistence object-persistence jdo apache-torque

现在我有java程序,其类目前是POJO并存储在易失性存储器中.这些都需要坚持下去.据我所知,两个流行的选择是JDO和Java Persistence API.对于那些对SQL,Torque等知之甚少的人来说,这是为程序数据添加持久性的最简单方法吗?

Bri*_*new 7

序列化到文件系统的传统方法是使用Java序列化.但是,您需要在任何地方实现Serializable.

一个更简单的解决方案是使用XStream序列化为XML(然后转储到文件系统).您不需要实现任何接口,并且大多数所有内容都可以串行化和反序列化而无需进一步干预.如果需要,您可以进一步自定义序列化.我遇到的唯一问题是序列化内部类而不是故意序列化包含的外部类(这是由于隐式this引用)


duf*_*ymo 6

如果您不了解SQL或关系数据库,请将对象序列化到文件系统.

您将不得不学习JDBC以使用JDO,JPA,Hibernate或其他任何东西.除非你的POJO非常复杂,否则我建议你从那里起步并继续努力.

确保您了解索引的规范化和正确设计.

  • 我不同意 - 不建议在不知道JDBC的情况下使用它们.复杂性是隐藏的,但它是一个漏洞的抽象. (3认同)

Fab*_*eeg 5

我遇到的最简单的方法是db4o:

ObjectContainer db = Db4o.openFile(location);
db.store(myObject);
List<MyObject> myObjects = db.query(MyObject.class);
Run Code Online (Sandbox Code Playgroud)

此外,还有很好的方法可以通过其他方式进行查询.


Pas*_*ent 5

如果序列化是一个选项,请考虑使用prevalayerSpace4J等流行API (更新).关于对象患病率:

流行是Klaus Wuestefeld在如何以真实的面向对象的方式存储数据时开始的概念,仅使用内存快照,事务日志和序列化.

查看此文章以了解有关此主题的更多信息(有关Google的更多信息).

  • Space4j还提供透明的集群和索引. (3认同)