【问题标题】:Best way to implement Client <-> Server <-> Database architecture in an Android application?在 Android 应用程序中实现客户端 <-> 服务器 <-> 数据库架构的最佳方式?
【发布时间】:2023-03-14 05:55:02
【问题描述】:

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

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

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

【问题讨论】:

  • 传统是使用某种基于 HTTP 的协议。不过很有趣的问题。

标签: java mysql android


【解决方案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 不是一个可行的选择。 :-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-12
      • 1970-01-01
      • 2013-01-17
      • 1970-01-01
      • 1970-01-01
      • 2011-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多