提问者:小点点

android-无需使用网络服务器即可通过LAN连接到mySQL数据库


我想有多个客户端通过LAN连接到服务器并访问/修改服务器中的mySQL数据库。

我该怎么做呢?你们能提供一些我可以研究这个话题的资源/链接吗


共3个答案

匿名用户

要回答您的问题,您应该能够通过将jdbc驱动程序作为Android Studio中的jar文件添加到您的项目中来连接到mysql数据库。

现在,对于您计划分发给数千名用户的真实应用程序,存在安全问题、性能问题和可扩展性问题。

安全问题:

>

  • 您可以通过将其端口开放给公共访问以供应用程序连接来将数据库直接公开到Internet。Web应用程序在中间添加了一个层,将数据库访问保持在Intranet内。

    您可以通过提供至少一个每个人都知道的公共帐户来向公众公开您的数据目录(我认为这是访问的方式,因为每个用户管理一个帐户是不现实的)。Web应用程序将用户帐户与数据库帐户隔离开来。

    通过以这种方式提供访问权限,因为android移动设备可以被root,您可能会授予对您的数据的匿名访问权限。

    性能问题:

    >

  • 中间有一个Web应用程序,它是管理与数据库连接的Web应用程序。这使得不同用户之间可以共享连接,而不是每个用户只有一个专用连接,如果不同的设备可以建立单独的连接。

    出于同样的原因,您不能利用连池,这节省了为每个传入请求建立到数据库的连接的过度开销。

    可扩展性问题:

    1. 由于连接不共享,并发用户数将绑定到您可以同时打开到数据库的连接数。

    编辑1

    我正在添加一个我想到的替代方案,其中涉及使用Web应用程序,但它不是使用Web服务器实现的。它是一个java的NIO框架,它自己运行。这个解决方案的限制是您需要对服务器和java进行shell访问,这在传统主机中并不常见。结帐网络。

  • 匿名用户

    有两种方法可以执行您的任务。您可以在android studio中添加JDBC驱动程序,或者更好地实现连接到数据库的RESTAPI,所有android客户端都可以向服务器发送HTTP请求,服务器将为您添加信息。在这里,您可以实现创建、更新、删除方法。对于HTTP请求,您可以使用Retrofit或Volley库。

    如果您想使用JDBC,请在此处查看答案如何将Mysql JDBC驱动程序转换为android studio

    但是对于这种类型的问题最好和最正确的解决方案是REST服务

    匿名用户

    从长远来看,你真的需要一个介于“用户”和数据库之间的“客户端”应用程序。它通常通过网络服务器完成,加上PHP/Java/VB/……是的,它需要你学习另一种语言,但在严肃的应用程序中,这不是什么可以避免的。

    客户端可以帮助(如果做得足够,也会伤害)安全性。客户端可以将用户与最终会发生的数据库更改隔离开来。客户端应该“抽象”到DB的接口,这样用户就不必SQL。等等。