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

use*_*530 10 mysql android

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

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

Jua*_*uan 7

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

现在,对于计划分发给数千名用户的真实应用程序,存在安全问题,性能问题和可伸缩性问题.

安全问题:

  1. 通过将其端​​口打开到公共访问权限以便连接应用程序,可以将数据库直接公开到Internet.Web应用程序在中间添加一个层,使数据库访问内部网.

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

  3. 通过这种方式提供访问,因为Android移动设备可以植根,您可能会授予对您的数据的匿名访问权限.

性能问题:

  1. 通过中间的Web应用程序,webapp管理与数据库的连接.这使得能够在不同用户之间共享连接,而不是每个用户可以具有一个专用连接,如果不同设备可以分开连接.

  2. 出于同样的原因,您无法利用连接池,从而节省了为每个传入请求建立与数据库的连接的重叠.

可伸缩性问题:

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

编辑1

我正在添加一个我想到的替代方案,其中涉及使用Web应用程序,但它没有使用Web服务器实现.它是一个独立运行的java NIO框架.此解决方案的局限性在于您需要对服务器和Java进行shell访问,这在传统托管中并不常见.Checkout Netty.


And*_*w T 5

有两种方法可以执行您的任务.您可以在android studio中添加JDBC驱动程序,或者更好地实现连接到数据库的REST API,并且所有Android客户端都可以向服务器发送HTTP请求,服务器将为您添加信息.在这里,您可以实现create,update,delete方法.对于HTTP请求,您可以使用Retrofit或Volley库.

如果你想使用JDBC,请查看这里的答案如何Mysql JDBC驱动程序到android工作室

但是针对此类问题的最佳和最正确的解决方案是REST服务


Ric*_*mes 1

从长远来看,您确实需要在“用户”和数据库之间有一个“客户端”应用程序。它通常是通过网络服务器以及 PHP/Java/VB/... 来完成的。是的,它需要您学习另一种语言,但这在严肃的应用程序中是无法避免的。

客户可以在安全方面提供帮助(如果做得足够的话,也会造成伤害)。客户端可以使用户免受数据库更改的影响,这最终会发生。客户端应该“抽象”数据库的接口,以便用户不必精通 SQL。ETC。