Java 针对简单独立应用程序的序列化与嵌入式数据库

Java 针对简单独立应用程序的序列化与嵌入式数据库,java,database,serialization,persistence,Java,Database,Serialization,Persistence,比如说,我有一个非常简单的Java应用程序,它需要存储一些用户设置的方法。XML不是一个很好的解决方案,因为我想以二进制形式存储它们。那么,在这种情况下,最好的解决方案是什么,嵌入式数据库(如ApacheDerby)还是简单的旧序列化? 我知道这是两件完全不同的事情,但都允许持久化某些应用程序状态。那么你会选择什么,为什么 编辑 至于存储简单的用户首选项,.properties或xml文件,我同意你的看法。但是,如果我想存储密码或某些特定于应用程序的数据,该怎么办?由于ApacheDerby是一

比如说,我有一个非常简单的Java应用程序,它需要存储一些用户设置的方法。XML不是一个很好的解决方案,因为我想以二进制形式存储它们。那么,在这种情况下,最好的解决方案是什么,嵌入式数据库(如ApacheDerby)还是简单的旧序列化?
我知道这是两件完全不同的事情,但都允许持久化某些应用程序状态。那么你会选择什么,为什么

编辑

至于存储简单的用户首选项,.properties或xml文件,我同意你的看法。但是,如果我想存储密码或某些特定于应用程序的数据,该怎么办?

由于ApacheDerby是一个可嵌入的关系数据库,因此使用它来存储和操作关系数据是有意义的。使用嵌入式数据库只保存一些用户设置有点过头了


如果是我,我会使用简单的键/值对序列化来持久化用户设置。

因为Apache Derby是一个可嵌入的关系数据库,所以使用它来存储和操作关系数据是有意义的。使用嵌入式数据库只保存一些用户设置有点过头了


如果是我,我会使用简单的键/值对序列化来持久化用户设置。

用户设置通常存储为

  • 属性,使用属性文件格式
  • 使用XML格式的属性
  • 首选项,使用首选项API。这样做的好处是可以存储和读取用户和系统的首选项,而无需考虑将它们存储在何处等。请参阅

用户设置通常存储为

  • 属性,使用属性文件格式
  • 使用XML格式的属性
  • 首选项,使用首选项API。这样做的好处是可以存储和读取用户和系统的首选项,而无需考虑将它们存储在何处等。请参阅

“因为我想以二进制形式存储它们”?为什么?为什么要把它复杂化?好吧,这不是一般情况,但也许我想阻止用户编辑这些设置“阻止用户编辑这些设置”。真有趣。真正的原因是什么?说真的,任何人都可以用一个字节级编辑器或一个小Python脚本来调整二进制文件。@S.Lott任何人,你是说一些普通的Windows用户,他们只知道如何使用MS Office和IE?是的。任何人都可以使用从互联网下载的任何随机工具修补任何文件。他们经常这样做。然后他们要求支持,因为他们破坏了应用程序。“因为我想以二进制形式存储它们”?为什么?为什么要把它复杂化?好吧,这不是一般情况,但也许我想阻止用户编辑这些设置“阻止用户编辑这些设置”。真有趣。真正的原因是什么?说真的,任何人都可以用一个字节级编辑器或一个小Python脚本来调整二进制文件。@S.Lott任何人,你是说一些普通的Windows用户,他们只知道如何使用MS Office和IE?是的。任何人都可以使用从互联网下载的任何随机工具修补任何文件。他们经常这样做。然后他们要求支持,因为他们破坏了应用程序。您概述了一些非常重要的方面。例如“使用数据库存储关系数据”和“不要使用数据库存储少量设置”。我完全同意你的看法。谢谢你的回答!你概述了一些非常重要的方面。例如“使用数据库存储关系数据”和“不要使用数据库存储少量设置”。我完全同意你的看法。谢谢你的回答!感谢您提及Preferences API。我得读一读。这真的很普遍吗?我以前从未遇到过这种情况。尽管我必须承认,我一直在开发大部分分布式应用程序,并且我经常使用RDBMS、属性和xml文件来存储数据/配置设置。但如果我想存储应用程序状态,而不仅仅是一些用户设置(比如一些内部计数器),该怎么办?还有密码呢?我想将这些数据保存在xml中并不是一个好主意。如果应用程序状态只是一些内部计数器,我不明白为什么不应该使用preferences API。如果它包含在一个巨大的对象图中,那么它就是另一回事了。密码,无论是存储在XML文件、文本文件、二进制文件还是数据库中,始终是一条敏感信息。在用户未接受并了解风险的情况下,不应将其存储。但是格式不重要。感谢您提到Preferences API。我得读一读。这真的很普遍吗?我以前从未遇到过这种情况。尽管我必须承认,我一直在开发大部分分布式应用程序,并且我经常使用RDBMS、属性和xml文件来存储数据/配置设置。但如果我想存储应用程序状态,而不仅仅是一些用户设置(比如一些内部计数器),该怎么办?还有密码呢?我想将这些数据保存在xml中并不是一个好主意。如果应用程序状态只是一些内部计数器,我不明白为什么不应该使用preferences API。如果它包含在一个巨大的对象图中,那么它就是另一回事了。密码,无论是存储在XML文件、文本文件、二进制文件还是数据库中,始终是一条敏感信息。在用户未接受并了解风险的情况下,不应将其存储。但格式并不重要。