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

8
我正在制作一款Android应用程序。由于它非常简单,所以我最初认为可以直接省略作为中间件的Java应用程序的需求。我尝试使用MySQL的JDBC驱动程序直接连接数据库,但我的程序崩溃了,所以我不确定Android是否“支持”MySQL的JDBC驱动程序。
因此,我正在考虑如何实现该应用程序。基本上,该应用程序从远程MySQL数据库中写入一些数据并检索一些数据。
我是通过套接字(或其他通信方法)连接到Java服务器程序?还是可以从客户端应用程序直接连接到MySQL数据库?

2
传统上使用某种基于HTTP的协议。不过这个问题很有趣。 - ziya
2个回答

22

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

永远不要在任何平台、任何客户端、任何地方,通过Internet连接使用数据库驱动程序,无论是哪种数据库。对于移动设备来说更是如此,因为数据库驱动程序是为局域网操作而设计的,不适合用于不稳定/间歇性连接或高延迟情况。

我应该使用套接字(或其他通信方法)连接到Java服务器程序吗?

它不一定非得是Java,只要是专为互联网使用而设计的工具即可,正如King先生的评论所建议的那样,Web服务在过去的十年中已经被广泛使用。对于Android来说,REST Web服务可能是最容易使用的,因为Android没有内置SOAP或XML-RPC的支持。但是,无论Web服务是由Java、PHP、Perl还是SNOBOL实现的,都取决于您自己。

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


0

我知道可能有点晚了,但是因为我在学校的一个项目中遇到了同样的问题,所以我想分享我的解决方案,希望你能从我的经验中受益。

Android不适合进行数据库操作,因此创建一个普通的数据库控制器并不可行。相反,我创建了一个Java服务器来处理所有与数据库相关的事务,并且还可以扩展(在我的情况下,我也使用了反馈功能)。

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接