【问题标题】:Android database with Google Cloud SQL and Google Datastore带有 Google Cloud SQL 和 Google Datastore 的 Android 数据库
【发布时间】:2013-07-02 15:28:32
【问题描述】:
在为我的 Android 应用创建在线数据库时遇到了很多麻烦。我将存储一些具有表之间真正基本关系的人的基本数据。另外,我会保存一些小照片,但通常是字符串和数字。
我已经下载并以某种方式理解了 Google 的“移动后端启动器”:https://developers.google.com/cloud/samples/mbs/
但在该示例中,他们使用 Google Datastore 作为数据库,我找不到有关如何使用 Google Cloud SQL 执行此操作的示例。是否可以从 Android 应用程序直接与数据库通信,或者我是否必须像使用常规 MySQL 数据库一样创建 PHP 网络服务?
我知道这不会像使用 SQLite 那样简单,但我不知道从哪里开始!
谢谢!
【问题讨论】:
标签:
android
google-app-engine
google-cloud-sql
google-cloud-datastore
【解决方案1】:
埃米利奥格,
我遇到了同样的问题,经过大量搜索后,我最终使用原始 JDBC 连接到我的 Cloud SQL 实例。它工作正常,即使我被告知在您的应用程序中嵌入直接数据库通信是不“合适的”。当然,没有人可以向我指出 Cloud Endpoint 示例。
我手头没有我的代码,但步骤如下:
- 加载注册标准 JDBC 驱动程序。
- 使用您的实例 IP\instance-name 创建连接
- 照常处理您的 SQL。
我什至成功地运行了存储过程,只要您使用preparedStatement 来避免SQL 注入,并且您已经为您的客户端应用程序设置了一个用户帐户,我看不到直接与您的实例通信的问题最低权限。
您可以使用 Toad 连接和管理您的数据库实例。
如果您需要代码示例,请告诉我,但这是非常标准的 java-DB 交互。
【解决方案2】:
我之前使用 Cloud Endpoints 完成了此操作。我创建了一个 Cloud Endpoints API,其中包含一些方法,然后对我的 Cloud SQL 数据库进行操作。
这比将 Cloud SQL 数据库连接凭据存储在 Android 应用中要安全得多。
【解决方案3】:
Mobile Backend Starter 不支持 Cloud SQL。您可以通过自行扩展和部署the backend 来使用 Cloud SQL,但这并不像使用 MBS 和 Datastore 那样简单。我建议您首先尝试使用 Datastore。
卡兹