Android 安卓持久存储
我已经通读了,我有一个问题没有找到答案: 我应该使用SQLite来存储数据,还是应该使用写入文件的JSON对象? 要求: 存储(最多)同一对象的几百个实例。每个实例都有些复杂,存储对图像、较小对象等的引用。数据将存储在本地,并可选择云备份。所有数据将在启动时加载,并在用户操作时保存 我问这个问题的原因是因为我没有太多的数据要存储——对于SQLite数据库来说,可能永远不会有超过100行的数据,这让我觉得SQL太过分了 此外,将数据导出到JSON文件将允许我轻松地从不同的设备平台导入/导出(我已经在iOS上这样做了) 或者,也许有更好的选择?如果Android有一个Android 安卓持久存储,android,json,sqlite,local-storage,storage,Android,Json,Sqlite,Local Storage,Storage,我已经通读了,我有一个问题没有找到答案: 我应该使用SQLite来存储数据,还是应该使用写入文件的JSON对象? 要求: 存储(最多)同一对象的几百个实例。每个实例都有些复杂,存储对图像、较小对象等的引用。数据将存储在本地,并可选择云备份。所有数据将在启动时加载,并在用户操作时保存 我问这个问题的原因是因为我没有太多的数据要存储——对于SQLite数据库来说,可能永远不会有超过100行的数据,这让我觉得SQL太过分了 此外,将数据导出到JSON文件将允许我轻松地从不同的设备平台导入/导出(我已经
NSCoding
类型库,我可能会使用它
任何意见都是有益的
谢谢
我已经阅读了Android存储选项,我有一个问题
我还没有找到答案:
我应该使用SQLite来存储数据,还是应该使用JSON对象
写入到文件中的
你需要再次分析你的需求
也许有更好的选择
这取决于你的要求。
如果您的需求固定为简单地存储和检索,那么您可以查看一下,它基本上使用
SharedReferences
作为存储机制。但是,如果您需要基于案例库的数据选择/查询,那么您应该使用到目前为止介绍的SQLite
,在文件中存储将更为有利
考虑到每个“单元”少于16个属性,一个具有短标识符的json文件可能会生成一个比等效SQL表示更大的文件表示。
但是,本地文件操作将允许更轻松的交互,以及更轻松的备份/关闭。
此外,与SQL相比,File类非常简单,生成的问题更少。
最后,在给出选择的情况下,您必须评估所使用的操作
如果要比较数据,那么SQL可能会更快,但如果只是将每个数据作为单独的对象输入/输出,那么文件的速度将与SQL一样快
最后,请详细说明您的对象,不要只创建一个包含所有信息的文件。这是一个广泛的问题,可能会导致一些自以为是的答案。您是回答这个问题的最佳人选,因为只有您知道要存储的数据。我想我更想知道JSON是否是一种有效的持久存储格式?或者,如果我需要存储一个只有1000个值的数组,就会遇到性能问题。任何人,先生,您是sqlite,谁知道数据库等等。。只是要确保你能有效地使用它等等,好的,为了性能,有很多地方你可以找到,不仅仅是你的数据存储和检索,所以自由世界先生。我对这个问题增加了要求。我不需要使用任何查询;这是一个在启动时加载所有数据并在操作时保存数据的问题。谢谢您的输入。我想知道,有没有一种简单的方法可以将SQL数据库导出到JSON?或者,更准确地说,将Java对象导出为JSON?如果是这样的话,从长远来看,使用数据库可能是有益的。@cohenadair我不知道有一个好的程序可以将数据库输出到json,因为它们的规则是不同的。我通常做的是,有一个“toJsonFile(some rule)”,基本上,我会从服务器读取一些数据,并将其分到文件中(比如output0.json…output999.json)。这很好。当我有太多数据时,我可以使用坏端计算机继续批量传输数据(还有,电话设备等)……谢谢;我想我会尝试一下这条路线,因为它将使从其他平台导入/导出到其他平台更加容易。另外,我已经将iOS数据导出到JSON文件进行备份。