繁体   English   中英

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

[英]Best way to save data in a Java application?

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

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

这样做的最佳方式/ lib是什么?

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

如果要使用XML,请查看XStream,以便将Java对象简单地序列化为XML。 这是“两分钟教程”

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

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

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

这是我的博客文章 ,提供了有关JAXB这种简单用法的更多细节(它还提到了一种更“优雅”的基于JAXB的方法 - 如果您需要更好地控制XML架构,例如为了保证向后兼容性)

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

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

  • Hsqldb是一个用java编写的小型sql db。 为了您的目的更相关,它可以配置为简单地写入csv文件作为它的数据存储,因此您可以想象使用它的文本输出作为可移植数据存储区并仍然使用sql,如果这是您喜欢的。
  • 第二种选择可能是直接或通过像prevayler这样的库将数据存储直接写入序列化文件。 非常好的性能和易于实现,缺点是格式的脆弱性和不透明性。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM