【问题标题】:Should I use arrary or sqlite database? [closed]我应该使用数组还是 sqlite 数据库? [关闭]
【发布时间】:2017-08-09 16:23:33
【问题描述】:

我正在寻求有关我需要创建的 APP 的帮助。我没有安卓应用开发经验,但我正在学习和练习。

我正在尝试构建一个应用来记录客户列表中的付款并在付款时打印收据。我使用json数组将未结余额的客户列表下载到android中。现在,我很困惑,不知道我应该使用数组还是数据库来存储列表,因为我需要稍后更新(上传)到服务器。 SQLite 似乎是一种选择,但是每次用户连接到 WiFi 时,我都必须下载该列表。

我想我必须将付款存储在一个数组中,并在上传后刷新它。

你能告诉我什么是我想要完成的任务的最佳选择吗?

【问题讨论】:

  • 如果您必须存储和检索值,那么数据库就是您想要的。数组是固定的 - 除非您没有实现将它们序列化为文件的方法。此外,数组仅可用于少数项目(例如 100 个项目)。一个数据库表可以包含多个字段,以便为您提供更多详细信息。而且它是可搜索的、可排序的,可以使用聚合函数等等。

标签: android arrays sqlite


【解决方案1】:

这取决于您的用例。数组和 sqlite 可以独立工作,也可以一起工作。

如果您要在同一会话中下载后立即上传数据,那么您可以将其保存在数组中,并在您需要对其执行任何操作后上传。请记住,数组将保存在内存中,并且根据您保存数组对象的位置,它们可能不会在活动的生命周期或应用程序的生命周期中持续存在。

SQLite 将数据写入磁盘,因此即使在用户退出您的应用程序后,您也可以将其持久化。

...因为我需要稍后更新(上传)到服务器

根据上述情况,您似乎应该将数据保存在磁盘上。 SQLite 是持久化数据的选项之一。看看here,看看还有什么可用于持久化数据。

您可以将任何持久化数据加载到您的数组中,并在处理完后上传。

希望这会有所帮助。

【讨论】:

  • 感谢您的回复。上传到服务器后,需要再次使用新信息更新或重新创建本地 sqlite 数据库。
  • 下载的数据将暂时使用,直到付款上传。上传后,我想我需要删除数据库并保存新信息。不知道这是否是最好的方法,但听起来很像。
  • 您可以只更新当前数据库中的数据并用新数据替换它。
  • 感谢大家的回复。刚刚创建了一个包含两个表的数据库,一旦所有内容都上传到服务器,两个表都会被删除,然后下载新信息。我需要重新下载它,因为用户不知道其他记录是否在旅途中更新。
猜你喜欢
  • 2019-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-19
相关资源
最近更新 更多