在运行时从JSON文件构建SQLite数据库 - 这样好吗?

时间:2014-03-07 19:20:10

标签: android json optimization

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

例如,json文件包含作者,书籍,关键字,引用,确认,子作者,并且在构建数据库时,将读取数据并为每个项目调用特定函数。我只关心因为每个项目的功能太多了。就像每当为一个项目解析json时,例如author,它会调用addAuthors函数将其添加到数据库中。以下是两个功能,例如。

//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);

}

我需要帮助来优化我的代码。有没有办法优化当前的代码?请帮助我,并建议一些改进。提前致谢

1 个答案:

答案 0 :(得分:0)

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

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