可以对Android SQLite数据库进行100次查询以保存数据项吗?

时间:2013-11-04 20:09:10

标签: android json sqlite

我一直在为我的Android翻译应用程序实现SQLite数据存储。 情况是:应用程序从服务器接收作为JSON的traslation,解析它并构建一个对象树(平均50到100个对象); 现在我需要将它保存到SQLite DB中。我问过我的老师,他建议不要保存整个JSON响应,而是建立一个更复杂的数据库结构。 我已经这样做了,但是我担心这些50-100个数据库查询已完成(并且分别创建了50-100行)以保存一个字典文章。

现在我想知道在DB中存储复杂对象树的最佳方法是什么,或者最多可以进行100个数据库查询。

但是,更好的方法是将JSON响应存储在DB中?我需要的字典文章的唯一操作是搜索它们,不需要修改。

2 个答案:

答案 0 :(得分:2)

最好拥有适当的数据库结构和规范化数据。这样您就可以更有效地查询数据。此外,如果他们开发代码,对其他人来说会更容易理解。

您应该在一次交易中完成所有更新,一次性保存100条记录就可以了。您可以使用类似于那个的结构:

    SQLiteDatabase db = sqlHelper.getWritableDatabase(); // this returns a database
    db.beginTransaction();

    try {
        // all your updates
        db.setTransactionSuccessful();
    } finally {
      db.endTransaction();
    }

    db.close();

答案 1 :(得分:1)

如果你正确使用交易,你会没事的。在单个事务中执行所有写操作,并在完成时提交事务。