如何使用 Android 应用程序访问 MySQL 数据库?

Posted

技术标签:

【中文标题】如何使用 Android 应用程序访问 MySQL 数据库?【英文标题】:How to access MySQL database with an Android application? 【发布时间】:2014-09-16 22:34:03 【问题描述】:

我是 Struts 和 android 的新手。我们开发了一个 Struts 应用程序。现在,我们正在寻求在 Android 中开发一些具有相同功能的模块。因此,它需要数据库(mysql)交互。

如果有任何想法,我们将不胜感激。是否需要 php 或 Web 服务?

【问题讨论】:

我推荐你使用网络服务。 谢谢。我将使用网络服务 【参考方案1】:

这需要网络服务,

您无法从您的应用程序访问您的 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) -> 会得到响应。

Web- Services tutorials

【讨论】:

【参考方案2】:

请勿将 Android 设备直接连接到生产数据库。这不安全有两个原因。

    这意味着您无法通过防火墙关闭您的数据库,而必须将其留在开放的互联网上。这增加了黑客直接攻击它的能力。

    要连接到数据库,您需要登录信息。这意味着您必须将其放入应用程序中。这使得攻击者反编译和获取它变得微不足道。那时你已经把你的数据库交给了他们。解决这个问题的正确方法是在它们之间放置一个 web 服务,并且让 Android 应用程序只直接连接到 web 服务。那么只有在你自己的服务器上安全的webservice才需要知道密码。

【讨论】:

感谢 gabe 的准确回答。【参考方案3】:

您应该使用网络服务来使用数据库中的数据。

为此,您可以了解 json 和 rest 是什么。您可以在 sv 端使用它们。并且有 Gson 在 android 客户端学习。它可以帮助您解析 json 数据。

google 上有很多关于它的教程。

android-webservice-example

accessing-web-service-from-android.html

【讨论】:

感谢您的建议。【参考方案4】:

如果你的数据库比较小,可以在手机上使用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 (这也是一个基本教程,向您展示如何更新插入选择以及几乎所有内容。)

祝你好运:)

【讨论】:

以上是关于如何使用 Android 应用程序访问 MySQL 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

从本地服务器访问 android 应用程序中的 mysql 数据库期间出现 java.io.FileNotFoundException

Android 使用MySQL直接访问数据库

React Native,Android Studio,JDBC,MySql - 拒绝访问用户'root'@'ipaddress'

当我从android访问Java servlet时mysql数据库没有更新

使用 asmack 访问连接到 Ejabberd 的 MySQL

如何使用 Mysql JDBC 驱动程序将 Android 与 MySQL 连接 [重复]