java - SQLite + 可序列化、SQLite + GSON,还是只是适用于我的 Android 应用程序的普通 SQLite?

标签 java android sqlite serialization

我正在尝试找出为我的 Android 应用程序保留数据的最佳方法。目前的情况是,在一个 Activity (UserItem) 中创建对象,在另一 Activity (SuggestionItem) 中创建对象。我目前仍在考虑结构,但这些可能是同一父类 (Item) 的子类,具有一些常见属性,如 namelocation

SuggestionItem 当前与保存​​其大部分数据的对象具有组合关系。该对象的类型为 Suggestion,它有一些子类,例如 RestaurantSuggestion 和 HotelSuggestion。

我想要做的是第三个 Activity ,显示创建的所有 SuggestionItems 和 UserItems 的 View 。我正在考虑将它们存储在 SQLite 数据库中,因为它们应该在应用程序关闭/重新启动之间保存。将来可能还会有某种导出/导入,但我可以只考虑暂时保存这些对象并稍后重新设计数据库。

我的问题是,我应该为我的类和与其字段匹配的列创建一个架构,还是应该序列化这些对象并将序列化版本存储在数据库中?它们相当简单;每个类可能有大约 10 个原始字段和字符串字段(例如 urlpricePerNightimageUrl)。唯一的非原始字段是 LatLng 字段,它可以转换为几个用于纬度和经度的双字段。我知道 Android 的两种序列化方法:gson 和实现 Serialized。我不确定哪个更合适。

有经验的人可以给我建议吗?抱歉,文字墙。

最佳答案

如果您永远不需要按照特定条件检索项目,则序列化很好,但我建议将各个字段编码到数据库中,以便您可以轻松搜索它们。

作为一般经验法则,对数据库中的各个字段进行编码总是更好,因为您现在无法知道将来是否需要按照某些条件检索数据。

注意:这取 self 对问题的评论

关于java - SQLite + 可序列化、SQLite + GSON,还是只是适用于我的 Android 应用程序的普通 SQLite?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30855108/

相关文章:

java - 无法使用 jdbc:sqlite::resource 将记录/数据保存到 SQLite 数据库:

java - java中如何在两个布局之间移动

java - 使用 Java 在 Eclipse 中正确读取资源

java - 创建构造函数来读取 txt 文件

java - 此 UIObject 的元素未设置;您可能错过了对 Composite.initWidget() 或 UIObject.setElement() 的调用

python - 为什么 pysqlite 不能正常工作?

android - 尝试制作布局画廊时,文本(最初)显示为暗淡

android - 共享首选项值随安装更新

android - 如何处理 "_data"字段?

python - 类型错误 : Invalid argument(s) 'pool_size' sent to create_engine() when using flask_sqlalchemy