从远程数据库获取数据的Android应用程序

我正在尝试编写一个Android应用程序,该应用程序将使用发布者/订阅者模型从将要托pipe在某个远程服务器上的数据库获取数据。 这是一个原型应用程序,所以我只是要在我的家用电脑上托pipe服务器。 我正在使用Ubuntu。 我已经阅读和研究了这个话题,但有很多分散的答案。 我有很多问题处理这个,但对于初学者..

  • 托pipe一个包含数据库的服务器的最佳方法是什么?
  • 这与我使用的数据库types有关吗?
  • 我可以使用android SQLite API从数据库获取数据

我在多个地方读到,从互联网上的任何东西直接连接到数据库,尤其是从移动设备上连接数据库是不值得的。 所以我想我需要使用某种HTTP,REST或类似的东西。

我对这些都不熟悉,所以如果有任何相关的信息,将不胜感激。

谢谢

What is the best method for hosting a server that contains a database?

从服务器与数据库通信的角度来看,Android或其他客户端通常是没有区别的。 重要的是你定义了良好的服务器和客户端之间的通信协议(Android在你的情况)。 最好的可能会是一些基于http的协议(REST可能)。

does it matter what type of database I use?

对于客户来说并不重要。 Android将只是另一个客户端。 所以这对你并不重要。 选择一个最容易进行并且被采纳的方法。 MySql,Postgres是很好的候选人。

Can I use the android SQLite APIs for getting data from the database.

没有

I read in multiple places that it is not kosher to connect to a database from anything over the internet directly

你当然不想这样做。 更重要的是,当你设计你的服务器的时候,你可能需要将和数据库交谈的代码从与客户端交互的代码中分离出来。 这将是面向服务架构的基础。

Android应用程序连接到后端数据库/网站

如何从android手机与服务器的数据库进行通信?

这两个问题有一些好的想法。

我会做的是创建一个Restful Web应用程序。 一个你的CRUD数据库操作可以通过你的HTTP方法表达的地方。

  1. 创建 – POST / PUT
  2. 阅读 – 获取
  3. 更新 – POST / PUT
  4. 删除 – 删除

从Web端你可以简单地使用JDBC来执行你的数据库操作。

这是一个相当简单的建议,但我认为这是一个很好的起点。 (也许这是显而易见的,但是您一定要验证请求进来,以防止恶意攻击您的数据。)