如何将我的数据库加载到我的网站,以便在我的Android应用程序中使用?

时间:2012-04-13 18:52:20

标签: android database sqlite web

好的我正在学习在android中使用数据库,并且已经学习了很多教我很多的教程,现在我知道如何在安装和打开应用程序时包含预先填充的数据库并将其复制到应用程序第一次,在列表视图中显示其内容。我使用SQLite数据库浏览器创建了数据库,所以我的问题是如何在我的app资源文件夹中包含这个预先填充的数据库,将其上传到我的网站并从那里获取它,这样我就可以对数据库进行更新而不是每次数据库中的项目发生变化时都必须更新应用程序? 我可以继续使用SQLite数据库浏览器来创建我的数据库吗? 任何评论都非常感谢,如果你能分享一个教程,可以帮助我实现这一目标也非常受欢迎。事先谢谢你。

3 个答案:

答案 0 :(得分:1)

我的解决方案来自YouTube和mimirsoft的一些教程。 我用mysql向导创建了一个数据库, 在phpadmin中我创建了一个包含我在应用程序中需要的所有信息的表格 3rd创建了一个php文件,它从数据库中查询数据并创建一个json字符串,我可以从我的应用程序中调用它。 我的应用程序中的第4个我从ky网站创建了对php文件的调用,设置了一个适配器和持有者,以便在我的列表视图中显示该信息。 而已!它的工作原理,如果想要实现类似的问题,我可以提供一些代码。 另外,您可以查看下一个链接,在那里您可以找到有关此主题的mimirsoft教程。  第1部分  http://m.youtube.com/watch?v=P3CwlckiLTU 第2部分  http://m.youtube.com/watch?v=HTIYt07NDRo

答案 1 :(得分:0)

生成sqlite转储文件并将其导入数据库,替换必要的表和数据。

这是我在Web应用程序中所做的,而不是本机应用程序,但它应该可以工作。

答案 2 :(得分:0)

有几种方法可以做到这一点。

一种方法是让SQLite数据库位于您的Web服务器上。然后,您可以进行某种检查,看它是否与您设备上已有的数据库不同。例如,您的服务器上也可能有一个文本文件,里面有一行,是数据库的版本。在数据库中,您可能有一个包含当前本地版本的行的表。然后,您可以在数据库中查询版本,并将其与文本文件中的版本进行比较。如果本地数据库版本低于文本文件中列出的版本,则废弃本地版本并获取新版本。

您可以通过以下方式读取远程文件:

URL myFileURL = null;
InputStream is = null;
String version = "";
try {
    myFileURL = new URL("http://www.mywebsite.com/dbversionfile.txt");
    is = myFileURL.openStream();
    BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
    String line = "";
    while((line = br.readLine()) != null) {
        version = line;
    }
} catch (Exception e) { }

比这更好的解决方案是在应用程序中包含数据库的骨架版本。只是一个包含所有相应表的空数据库。然后,您可以与Web服务器上的PHP / Java / etc页面进行通信,并获取数据库中当前不存在的任何数据的JSON字符串。如果选择此方法,您可能希望在数据的每一行中包含时间戳。这样,您可以在设备本地数据库上查询具有最新时间戳的行。如果此时间戳小于服务器上数据库返回的时间戳,则返回大于JSON格式的所有行。

如果要使用此方法,可能需要研究Android JSONObject类。

我确信还有其他方法。