【问题标题】:Pulling data from web server and storing that data into sqlite db file locally on android device for offline use从 web 服务器中提取数据并将该数据存储到 android 设备上本地的 sqlite db 文件中以供离线使用
【发布时间】:2014-05-05 11:31:26
【问题描述】:

我正在开发一个 android 上的应用程序,我目前需要从 Web 服务器中提取数据并将其存储到 db(sqlite db 文件)文件中,应用程序将进一步使用该文件向用户显示数据。我几乎不知道我需要编写一个 Web 服务,该服务将从服务器中为我提取数据,但我完全不知道如何将其存储在 SQLite db 文件中。 Uptil 现在能够从ArrayList<HashMap<String, String>>InfoList; 中的服务器获取数据 现在我想存储ArrayList<HashMap<String, String>>InfoList; => to sqLite database 的所有数据,稍后将在本地应用程序使用。如何才能做到这一点。 请各位高手指导一下。提前致谢。

【问题讨论】:

  • Android SQLite Example 的可能重复项
  • @KarolisŠarapnickis:我要求从 Web 服务器中提取数据,然后将其存储到 SQLite。我可以为 SQLite 编写代码,但我不知道如何处理从 Webserver 到 sqlite 的代码。

标签: android android-sqlite android-webservice


【解决方案1】:

这样就可以了,(xml解析存入db)

            SAXParserFactory saxPF = SAXParserFactory.newInstance();
            SAXParser saxP = saxPF.newSAXParser();
            XMLReader xmlR = saxP.getXMLReader();
            URL url = new URL("your url"); // URL of the XML
            XMLHandler myXMLHandler = new XMLHandler();
            xmlR.setContentHandler(myXMLHandler);
            xmlR.parse(new InputSource(url.openStream()));

data = XMLHandler.data;

db.execSQL("create table if not exists entries(subject_name varchar,subject_id varchar)");

        for (int i = 0; i < data.getSubname().size(); i++) {    
            String subname=data.getSubname().get(i);
            String subid=data.subid().get(i);
db.execSQL("insert or replace into entries values('"+subname+"','"+subid+"')");
       }
}

为了检索数据,我们使用游标。

编辑: 这个问题已经解决了,可以参考Insert JSON data into the SQLite database in android

【讨论】:

  • 我将使用 JSON 从服务器中提取数据。
【解决方案2】:

我认为您应该使用 JSON 作为 Web 服务的输出格式。不是xml,因为js很难解析。

一旦你在 javascript 中有 JSON,你就可以使用 sql.js https://github.com/kripken/sql.js 它是 SQLite 的 javascript api。使用它将您的 json 导入 sqlite。

【讨论】:

    猜你喜欢
    • 2017-06-24
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多