在Java应用程序中保存数据的最佳方法?

时间:2009-02-04 21:04:13

标签: java database settings state

我正在尝试找到保存简单应用程序状态的最佳方法。 从数据库的角度来看,有4/5个表格,其中包含日期字段和关系。

由于应用程序很简单,我希望用户可以选择移动数据(usb pen,dropbox等),我想将所有数据放在一个文件中。

执行此操作的最佳方式/ lib是什么?

XML通常是最好的格式(可读性和开放性),但是如果没有SAX / DOM,我没有找到任何优秀的lib。

4 个答案:

答案 0 :(得分:12)

如果要使用XML,请查看XStream以将Java对象简单序列化为XML。这是"Two minute tutorial"

如果您想要简单的东西,标准Java Properties format也可以是存储/加载一些小数据的方法。

答案 1 :(得分:1)

考虑使用JDK附带的普通JAXB注释:

@XmlRootElement  
private class Foo {  
    @XmlAttribute  
    private String text = "bar";
}

这里有一个blog-post of mine,它提供了有关JAXB这种简单用法的更多细节(它还提到了一种更“优雅”的基于JAXB的方法 - 如果您需要更好地控制XML模式,例如向后保证兼容性)

答案 2 :(得分:0)

您可能会考虑的其他两个选项 -

  • Hsqldb是一个小的sql db java的。更适合您的 目的,它可以配置为 只需按原样写入csv文件即可 数据存储,所以你可以想象 使用它的文本输出作为便携式 数据存储区仍然使用sql,如果 这就是你喜欢的。
  • 第二个选项可能是写 数据存储直接到序列化 直接或通过文件 像prevayler的图书馆。很好 性能和易于实现, 缺点是脆弱和不透明 格式。

但如果数据足够小,那么xml可能就不那么麻烦了。

答案 3 :(得分:0)

如果您不需要为数据提供语义含义,那么XML可能是错误的选择。我建议使用无脂替代JSON,它更自然地为数据结构构建。