使用Rest在Sqlite中存储数据

时间:2012-02-18 07:27:04

标签: android sqlite

我正在创建我的第一个将使用SQlite的Android应用程序。我没有数据库的经验,除了创建一个用于wordpress的mysql数据库...


编辑:在做了一些关于休息的研究后,我仍然对rest,sqlite和android dev如何融合在一起感到困惑。我的目标是通过URL访问基于休息的Web服务并访问某些数据集,然后将它们存储在我的SQlite数据库中。然后我想通过我的java程序访问数据库的内容,并相应地使用它们。

数据集可以在CSV format中单独下载,但因为我将使用这么多数据集,所以我不想单独遍历每一行并将它们存储在数据库中。我希望有一种更有效的方法将这些数据集存储在数据库中。

我的主要问题是:

  • 如何将网页的XML内容从网址复制到我的sqlite数据库?我可以使用我的java程序,通过sqlite数据库或java库吗?
  • 我只需要将网页的内容从网址复制到sqlite数据库一次吗?如果是这样,如果在数据集中更改了任何信息,我该怎么办?

3 个答案:

答案 0 :(得分:5)

首先需要sqllite数据库的架构。该架构应映射到Web服务后面的对象。例如,如果Web上有Person实体,则需要在DB中使用Person表。这取决于你想要捕获的内容。

完成模式设计后,您应该开始编写可以帮助您创建模式的代码。在android上管理DB。这是在SQLiteOpenHelper类的帮助下完成的: http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html

如果您需要将数据库与云上的数据(Web服务)保持同步,则应实现同步。 Android提供了一个非常有效的同步框架。

另外,请观看Android工程师发布的解释最佳做法的视频:http://www.youtube.com/watch?v=xHXn3Kg2IQE

注意,要实际从Web服务获取数据,您将使用UrlConnection API: http://developer.android.com/reference/java/net/URLConnection.html

此示例可能捕获了大部分内容。 http://developer.android.com/resources/samples/SampleSyncAdapter/index.html

答案 1 :(得分:3)

在阅读CSV文件方面,这里有一些很好的资源:

  

Can you recommend a Java library for reading (and possibly writing) CSV files?

将每个CSV行读入对象后,您可以转身并将其持久保存到数据库中。我是ORMLite的作者,所以我将谈论使用它。我不相信Android有一个hibernate端口。

有许多Android examples可帮助您快速掌握ORMLite。 some good tutorials也是discussion about creating lists of objects。如果要一次写入多行,我建议使用批处理任务ORMLite功能。有关信息,请参阅邮件列表中的{{3}}。

答案 2 :(得分:0)

我可以回答你的第一个问题“我不确定如何有效地添加它们”? 是的,SQlite功能强大且非常智能,您可以在一次交易中添加数千条记录,就像传统数据库一样,它可以显着提高性能。

关于第二个问题,正如我的理解,因为CVS文件非常简单,所以你可以自己下载和分析它。