最有效的存储,写入和读取物品数据库的方式。

问题描述:

我正在编程的android-app将有一个产品数据库,比如说他们的150-250。每个项目将具有像名称,成本,EAN号码等属性。最有效的存储,写入和读取物品数据库的方式。

我的第一个想法是将所有内容都存储在应用程序启动时加载的xml文件中,然后将其填充到产品的数组/地图中。产品需要在列表视图中可见,用户应该能够通过应用程序添加更多这些产品。他们的大多数属性几乎不会改变,但其中的一些属性会随时变化。我不知道改变产品数组和xml中的属性是否是一个好主意,然后在xvi文件eveytime同时发生更改时保存。也许序列化会是一个更好的选择? 尽管无论哪种方式,我想这个文件不需要写入每一个变化,我想这可以像应用程序关闭或间隔时间或什么时候完成(不太确定那一个,因为我'所有新的开发移动应用程序,我不希望任何数据丢失)。 也许这是一个好主意,以某种方式分离他们的“静态”和“动态”属性?

我很迷茫。任何关于什么是最好的方法的建议?

一直在寻找在stackoverflow和谷歌,但还没有真正能够找到有用的东西。

您将一直访问的结构化数据在SQLite数据库中处理得更好,而不是在XML文件中处理。如果你使用XML路由,你必须编写所有的代码来解析,查询和存储数据。使用数据库时,大多数这些功能需要的代码少得多,而且最有可能效率更高。错误的可能性也较小。您还可以避免必须考虑何时将对内存XML表示所做的更改提交给实际文件。

我强烈建议你阅读data storage的文章,也看Notepad Tutorial因为它表明,你需要创建,更新和查询数据库,并将其与ListView整合的所有技术。

看起来好像有很多研究,但是如果您使用内置的SQLite而不是自行推出XML文件支持的存储,您的应用将变得更加灵活和无缺陷。

您应该使用基于的SQLite。这样您就可以独立于任何其他组件(活动或服务)更新您的产品。当日期发生变化时,所有有关方都可以收到通知。

此外,还支持ListView中的ContentProvider(通过CursorAdapter),并且您还从Loaders(通过CursorLoader)获得免费支持。除了所有这些,你有一个更有效的数据存储方式(即你不需要在每次保存时重写xml文件)。 SQLite将会以一种非常有效和可靠的方式来保存所有的变化。