【发布时间】:2014-09-16 22:34:03
【问题描述】:
我是 Struts 和 Android 的新手。我们开发了一个 Struts 应用程序。现在,我们正在寻求在 Android 中开发一些具有相同功能的模块。因此,它需要数据库(MySQL)交互。
如果有任何想法,我们将不胜感激。是否需要 PHP 或 Web 服务?
【问题讨论】:
-
我推荐你使用网络服务。
-
谢谢。我将使用网络服务
我是 Struts 和 Android 的新手。我们开发了一个 Struts 应用程序。现在,我们正在寻求在 Android 中开发一些具有相同功能的模块。因此,它需要数据库(MySQL)交互。
如果有任何想法,我们将不胜感激。是否需要 PHP 或 Web 服务?
【问题讨论】:
这需要网络服务,
您无法从您的应用程序访问您的 MySQLSQL/Oracle 数据库。只是因为所有这些数据库都部署在其他环境中,无法在移动环境中部署像 MySQL 这样庞大的数据库。
所以你需要使用网络服务来访问那些数据库(MySQL/Oracle)。
WebServices: 只是一种调用一些服务器端脚本的机制,如PHP, ASP, JSP 等。
所有这些脚本都有用于访问 MySQL 数据库的 API。最后,此脚本将以JSON/XML 的形式将结果返回给您的应用程序。通过 HTTP 连接。
YourAPP ->它将执行一些与你的服务器对话的和平代码(调用网络服务-> getStudent()-)
Server -> *它将执行类似getStudent()- "select * from student" -> 将数据打包成json/xml格式。 -> 作为对您的应用程序的响应返回。*
YourApp -> callback(Student data) -> 会得到响应。
【讨论】:
请勿将 Android 设备直接连接到生产数据库。这不安全有两个原因。
这意味着您无法通过防火墙关闭您的数据库,而必须将其留在开放的互联网上。这增加了黑客直接攻击它的能力。
要连接到数据库,您需要登录信息。这意味着您必须将其放入应用程序中。这使得攻击者反编译和获取它变得微不足道。那时你已经把你的数据库交给了他们。解决这个问题的正确方法是在它们之间放置一个 web 服务,并且让 Android 应用程序只直接连接到 web 服务。那么只有在你自己的服务器上安全的webservice才需要知道密码。
【讨论】:
您应该使用网络服务来使用数据库中的数据。
为此,您可以了解 json 和 rest 是什么。您可以在 sv 端使用它们。并且有 Gson 在 android 客户端学习。它可以帮助您解析 json 数据。
google 上有很多关于它的教程。
【讨论】:
如果你的数据库比较小,可以在手机上使用sqllite,将数据库存储在手机上。
如果你想保持在线,请关注:
在您的 android 项目中,您必须创建一个异步任务以将 http 请求发送到负责该语句的 Web 脚本。
这和发送一个html表单一样,你通过get或post发送数据,你在php中以同样的方式接收它们,连接到sql,查询你的数据库,返回你的结果,然后你将它们返回到手机中json 或 xml 格式。
在手机中,您获取 xml 或 json 格式数据的结果并对其进行解析,然后随心所欲地处理它们。
您也可以通过这种方式更新/更改/插入/删除/...数据库。
SQLite 基础教程:(这是一个我认为可能对你有帮助的基础教程)http://www.vogella.com/tutorials/AndroidSQLite/article.html#todo_database
在线sql数据库教程: http://androidprogramz.blogspot.com/2012/07/connect-mysql-database-from-android.html (这也是一个基本教程,向您展示如何更新插入选择以及几乎所有内容。)
祝你好运:)
【讨论】: