在 Android 应用程序中实现客户端 <-> 服务器 <-> 数据库架构的最佳方式?

Posted

技术标签:

【中文标题】在 Android 应用程序中实现客户端 <-> 服务器 <-> 数据库架构的最佳方式?【英文标题】:Best way to implement Client <-> Server <-> Database architecture in an Android application? 【发布时间】:2011-01-16 09:33:46 【问题描述】:

我正在制作一个 android 应用程序。由于它非常简单,我首先认为我可以简单地消除服务器上作为中间件的 Java 应用程序的需要。我尝试使用 mysql 的 JDBC 驱动程序直接连接到数据库,但我的程序崩溃了,所以我不确定 Android 是否“支持”MySQL 的 JDBC 驱动程序。

所以我正在考虑如何实现应用程序。基本上,应用程序从远程 MySQL 数据库写入一些数据并从远程 MySQL 数据库检索一些数据。

我是否使用套接字(或其他一些通信方法)连接到 Java 服务器程序?或者我可以从客户端应用程序直接连接到 MySQL 数据库吗?

【问题讨论】:

传统是使用某种基于 HTTP 的协议。不过很有趣的问题。 【参考方案1】:

我知道这可能有点晚了,但是当我在学校的一个项目中遇到同样的问题时,我想与您分享我的解决方案,因为您可能会从我的经验中受益。

Android 不适合数据库操作,因此创建一个普通的数据库控制器并不是一件容易的事。相反,我用 Java 创建了一个服务器,它处理所有与数据库相关的东西,也可以扩展(在我的例子中,我也使用了反馈功能)。

Github-REPO 是:https://github.com/Cedced-Bro/Public-Server 您可以查看它,这是开源的,因此如果您有更多想法,您可以使用它并做出贡献。

为了更正确地回答您的问题:我强烈建议不要授予所有用户直接访问您的数据库的权限,因为您可能会遇到恶意用户的安全问题。这就是为什么我首先创建了这个控制器而不仅仅是一个 php“转发”服务器。

【讨论】:

【参考方案2】:

我尝试直接连接到 使用 JDBC 驱动程序的数据库 MySQL,但我的程序崩溃了 我不确定 Android 是否“支持” MySQL 的 JDBC 驱动程序。

永远不要在任何地方、任何数据库、任何平台、任何客户端、任何地方使用跨 Internet 连接的数据库驱动程序。这对于移动设备来说是双倍的。数据库驱动程序专为 LAN 操作而设计,不适合不稳定/间歇性连接或高延迟。

我是否连接到 Java 服务器程序 使用套接字(或其他一些方法 沟通)?

它不一定是 Java。它必须是专为在 Internet 上使用而设计的东西。正如金先生的评论所暗示的,在过去十年的大部分时间里,Web 服务一直用于此目的。对于 Android,REST Web 服务可能是最容易使用的,因为没有对 SOAP 或 XML-RPC 的内置支持。但是,Web 服务是用 Java、PHP、Perl 还是 SNOBOL 实现的,这取决于您。

好吧,也许 SNOBOL 不是一个可行的选择。 :-)

【讨论】:

以上是关于在 Android 应用程序中实现客户端 <-> 服务器 <-> 数据库架构的最佳方式?的主要内容,如果未能解决你的问题,请参考以下文章

如何在基于 Java 的 Android 应用程序中实现 Datastore?

如何在工具栏中实现自动完成 google place api - Android

Android中实现自定义的拍照应用

如何在 Android Studio 中实现 razorpay 定期付款?

android 中实现网页调用摄像头功能?怎么实现?

Android应用中实现系统“分享”接口