2013-04-11 24 views
1

我已成功地设法使用POST在我的网站上运行PHP脚本,该脚本允许电话应用程序向数据库添加新条目(MySQL) ,并删除一个条目。在我的Android应用程序中在本地主机上获取MySQL的'最简单'方法

下一步是我在过去几个小时里一直在努力的那一步,那就是从数据库中获取信息到手机上!

我想要一个方法,最初只是在开始活动和填充listview时连接到数据库,或者将所有条目连接到数据库,然后我计划将信息复制到手机中的SQLite数据库。

我可以考虑实现这个最简单的方法是什么? 我可以是足智多谋的,但我只需要知道我在找什么!

+2

什么是阻止您使用GET请求从PHP脚本中检索数据以及?在本地缓存(SQLite或NoSQL备选方案)并随意检索它们! – 2013-04-11 21:24:23

+0

我不需要访问php脚本,我只需要从MySQL DB获取数据。有没有办法直接连接到它,你是说我必须创建一个网页,检索数据,然后在手机上访问该脚本?我有点困惑... – 2013-04-11 21:39:32

+0

两件事。 1.大多数移动运营商阻止对端口3306的访问。2.大多数MySQL服务器阻止不是来自本地主机(或者非常特定的服务器子集)的连接。你最好通过网络服务器“挖掘”(好,好)。 – 2013-04-11 21:42:59

回答

1

一般来说,你需要创建服务器API:选择一些格式你的web服务和Android应用程序之间的交谈。 然后,你总是需要请求来自服务器的一些数据,这将在上述格式返回给你在某种形式的网络响应体。 接下来,您需要解析这些数据并填充到适配器或其他任何内容中。

注意联网操作可能需要相当长的时间取决于你的连接,所以你不能等待它结束,以显示你的UI - 你需要做的这异步方式,并给用户数据正在检索的反馈。

时下在http post请求体内传递的json格式非常流行。看看this tutorial on how to parse json on android和这个video about how to create json api in php

当然,您可以尝试直接连接到远程MySQL服务器。在某些情况下(您不需要编写服务器端API),它确实是更简单的解决方案,但可能不那么容易访问,因为标准MySQL端口不在所有网络中打开。另外你的API服务器可能会隐藏一些关于数据如何存储在实际中的实现细节,从而使你可以从MySQL迁移到PostgreSQL,而无需担心android应用程序。

不要忘记保护您的数据免受未经授权的访问!

编辑

这是2017年这将是最简单的方法是现在使用的开源项目,它会为你的数据库提供REST API,例如ArrestDBpostgrest

+0

作为JSON的替代品,如果符合要求,可以使用RESTful API。 PS:不能投票赞成〜〜小时... – 2013-04-11 22:08:35

+0

你可以使用[Gson](https://code.google.com/p/google-gson/)解析你的Android应用 – theDazzler 2013-04-11 22:15:29

0

我本人来说不得不开发此遵循iOS和Android设备的REST API服务(基于Laravel框架,我称之为lRapi),并且效果很好(应用程序使用的版本更复杂)。

https://github.com/w0rldart/lRapi

有很多模型和控制器那里,你可以使用上手。响应格式为JSON格式,并带有正确的标题。 我仍然需要添加更多的文档,但在主要的示例视图中有一些,您可以通过设置虚拟主机并在浏览器中打开根页面来访问它。

Laravel是一个MVC PHP框架,它很容易适应它。

这是避免做大部分工作的好方法,只关注于实现你需要的东西。

1

你有很多选择。通过HTTP

  1. 更高级别的抽象像已提及的
  2. HTTP作为明文/ CSV数据(没有抽象)
  3. 从机器人设备的直接JDBC连接到MySQL代理(REST/SOAP /等)
  4. 数据库中的数据导入/导出

我想你要找的选项3.即(在Android SQlite的)同步远程数据库,使本地,然后用本地数据的工作?在这种情况下,您只需将一个mysql-client jar(JDBC驱动程序)放入您的应用程序中即可启动。尽管如此,还是有一些限制,如评论中已经提到的SébastienRenauld。然而,这些问题可以解决,即使用MySQL的自定义配置,或者使用可以以通用方式实现的选项(2)(只写一次)

+0

中的JSON,这听起来很完美,我只是把这个应用程序作为一个概念,它可以通过Wi-Fi网络通过本地主机运行。 我会谷歌JDBC,看看它是否适合我+在我的技能水平,谢谢! – 2013-04-11 22:48:17

+0

不好意思,我真的找不到JDBC驱动,请问你能提供一个链接吗? – 2013-04-11 23:50:50

+0

驱动程序,你可以在这里下载http://dev.mysql.com/downloads/connector/j/解压缩文件并找到一个.jar,这是使用的驱动程序。一个示例代码http://stackoverflow.com/questions/4447692/jdbc-connection-in-android进行连接,如果您需要超过1小时,您仍然可以回退到(2),如此处所述http:// www.basic4ppc.com/forum/basic4android-getting-started-tutorials/8339-connect-android-mysql-database-tutorial.html它写得很好。 – comeGetSome 2013-04-12 09:00:10

相关问题