【问题标题】:Build SQLite database from JSON file in runtime - is it Good?在运行时从 JSON 文件构建 SQLite 数据库 - 好吗?
【发布时间】:2014-03-09 17:02:11
【问题描述】:

我需要关于在 android 应用中呈现数据的意见。我将所有数据存储在一个 json 文件 abc.json 中,该文件位于 res > raw 文件夹中。我有一个类,然后在应用程序运行时从该 json 文件中读取数据并构建 SQLite 数据库,稍后我将执行所有操作,例如使用该数据库的 sql 查询搜索数据。但是我担心这不是一个好的选择并且代码没有优化,因为代码现在包含了很多用于将项目添加到数据库的函数。

例如,json 文件包含作者、书籍、关键字、参考文献、致谢、子作者,并且在构建数据库时,会读取数据并为每个项目调用特定的函数。我只是担心,因为每个项目都有太多功能。就像每当为某个项目解析 json 时一样,例如作者,它会调用 addAuthors 函数将其添加到数据库中。以下是其中的 2 个功能示例。

//Sample function code for adding authors to db
public void addAuthors(Integer id, String Name, String is_corresponding) {

    ContentValues value = new ContentValues();

    value.put("_id", id);

    value.put("NAME", Name);

    value.put("IS__CORRESPONDING", is_corresponding);

    authors_id = database.insert(TABLENAME_AUTHOR, null, value);
}

//example function for adding keywords to db
public void addKeyWord(String KeyWords, Integer id) {

    ContentValues values = new ContentValues();

    values.put("KEYWORDS", KeyWords);

    values.put("_id ", id);

    database.insert(TABLENAME_ABSTRACT_KEY_WORDS, null, values);

}

我需要帮助来优化我的代码。有什么方法可以优化当前代码吗?请帮我解决这个问题并提出一些改进建议。提前致谢

【问题讨论】:

  • 你解析你的json不止一次吗?
  • @323go.不,我只解析一次。我已经用我用于此目的的应用程序的 getData() 函数更新了我的问题。

标签: android json optimization


【解决方案1】:

我建议将 sqlite 数据库作为资产捆绑到您的 APK 中,而不是捆绑 JSON 文件,然后将数据插入数据库。如果您的数据没有改变,那么您可以摆脱所有插入功能。您还将节省动态创建和填充数据库的成本。

您可以使用here 描述的方法来创建您的数据库并从您的 APK 的资产中复制它。请务必先复制它,然后再尝试在您的应用中打开 - 您不能直接将其作为资产打开。

【讨论】:

    猜你喜欢
    • 2023-03-15
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 2012-04-04
    • 1970-01-01
    相关资源
    最近更新 更多