我是否需要SQLite才能在MySQL数据库上存储一些数据

时间:2015-04-28 15:15:08

标签: java android mysql database sqlite

如果我需要在MySQL数据库上存储一些数据,我应该先将它存储在SQLite上,然后将Android上的SQLite同步到MySQL数据库吗?

是否可以在没有SQLite的情况下将数据存储到MySQL数据库?如果是的话,有什么更好的选择? (使用SQLite或不使用它)

更新
我需要MySQL,因为我希望 person1 能够看到 person2的数据,如果 person2的数据存储在SQLite上,这是不可能的,因为它将坐在 person2的 Android设备中..我是对的吗?

3 个答案:

答案 0 :(得分:2)

问题是你想把数据库放在哪里?如果在应用内,那么除了SQLite之外别无选择。

如果它不合适,那么可能性是无限的。您可以运行自己的服务器和MySql数据库。例如,如果您使用Amazon AWS提供的云解决方案,您甚至不需要设置服务器,因为它们具有允许应用程序直接与数据库通信的SDK。

同步策略取决于您的应用。也许不需要它,您的应用程序可以根据需要向您的数据库发送查询。我的经验法则是我拒绝在客户端或应用程序中设置数据库。为什么?因为一旦它存在,修改它并不容易。此外,它受设置的影响 - >清除数据或卸载。

如果您想要执行编辑所说的内容,那么您需要在应用之外执行此操作。您需要一个中央数据库,它从所有安装中收集数据并允许来自它们的查询。我需要强调的是,如果它是off-app,它不需要是MySql。 MySql只是一种关系数据库系统。您可以使用无模式系统(或NoSql),文件存储(如果数据是文件)等,这些都取决于许多考虑因素。

答案 1 :(得分:1)

Android仅支持SQLite数据库,该数据库将位于Android设备上的应用中。

如果您想使用MySQL数据库,则需要创建一个API,该API将位于互联网上的某个服务器上。此API将创建从应用程序到MySQL数据库的接口。然后,您需要通过Android应用程序对API进行网络调用。

使用API​​模型有很多选项,所以你真的需要做一些谷歌搜索并找出最适合你的方法。

修改

要回答您编辑过的问题,您肯定需要使用API​​设计模式。如果要创建需要从多个设备访问的服务,那么通常就是这样。使用API​​的好处是它们可以跨平台使用。因此,您不仅可以在Android设备上使用它,还可以通过Web,IOS应用程序等使用它......

一个简单而典型的体系结构就是你有一个Android应用程序,它将通过HTTP向网络上的API发送网络调用。 API将位于可能在其上存储MySQL数据库的服务器上。 API将对您的用户进行身份验证,并执行可能需要执行某些数据库查询的方法。一旦API获得结果,它就会将其发送回Android App,然后解析并显示给用户。

这是一个很大的话题,所以你需要对这个问题进行一些研究。

答案 2 :(得分:0)

Android不支持MySQL来保存应用程序数据,正如您在developer.android website.

中所看到的那样

尽管如此,您并不强迫SQLite数据库能够与其他RDBMS通信。您可以看到这个example,,它向您展示了如何使用JSON,PHP和HTTP请求从远程MySQL数据库中检索数据记录。

我认为您还可以查看ContentProviders。它们通常与SQLite一起使用,但我认为它可以与其他RDBMS一起使用。