如何在我的 Android 应用程序(Eclipse)中实现和使用 Google Cloud SQL?

28

这可能看起来像一个愚蠢的问题,也许看起来像我没有在其他地方寻找答案,但问题在于我正在开发一款安卓应用程序,其中一个问题是我了解到了

Google Cloud SQL

Google App Engine

所以我看了大约20-30个教程并开始实现,在某个点上卡住了,找不到简单的步骤教程如何编写安卓代码。

以下是我所做的和目前遇到的问题:

-我的安卓应用程序运行良好,没有任何错误

-创建了一个应用引擎项目

-启用了 Google Cloud SQL 服务和其 API 服务,并为此付费

-在云中创建了一个实例

-并“通过api控制台”创建了一个表和一个小型数据库在我的实例中

-为我的应用程序包生成了一个App Engine后端

这就是我卡住的地方!我不知道如何使用生成的文件,如何工作,如何通过我的应用程序访问云中的表,无法找到任何教程来解释它是如何发生的,所有现有的教程都跳过了这一步,好像这是世界上最容易的事情。

我只想知道事情是如何一起运作的?在哪里写方法,我必须做什么才能从云中的实例表中获取数据……

甚至可以提供任何链接 :) 谢谢。


2
一个月过去了,我仍然无法弄清楚...我不熟悉Servlets和Endpoint类的逻辑...我阅读了很多教程,但都是关于Web应用程序的,而我正在开发一款Android应用程序,我只需要访问我的云SQL数据库的代码,从运行在手机上的应用程序中读取和写入...有人可以帮忙吗?:(这是我的毕业项目:( - Owehbeh
2个回答

12

如果你还没有搞清楚,这是我所做的。

在开发者控制台中记录下你的项目编号和API密钥。同时确保你的云实例允许访问你的项目ID。

  1. 创建一个与App Engine连接的项目。文件 > 新建 > 其他 > Android > App Engine连接的Android项目。
  2. 输入你的项目编号和API密钥。
  3. 一旦你创建了这个项目,然后右键点击生成的App Engine项目 > Google > App Engine设置,并在应用程序ID字段中输入来自开发者控制台的项目ID。
  4. 右键点击生成的App Engine项目 > Google > 生成云端点客户端库。
  5. 右键点击生成的App Engine项目 > Google > 部署到App Engine。

现在你可以通过AsyncTask从Android应用程序调用你的云SQL数据库。但是你必须以AsyncTask的方式完成。在doInBackground中创建一个AsyncTask类并连接到你的数据库,我是这样做的:

  public class Connect extends AsyncTask<Context, Integer, Long> {

    protected Long doInBackground(Context... contexts) {

        Connection connection;
        String query = "Some query";
        try {
            Class.forName("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection("jdbc:mysql://<your cloud IP address>/<database schema you want to connect to>", "<user>", "<password>");

            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery(query);

如果您已经创建了一个Android项目,只需右键单击该项目>Google>生成应用引擎后端,然后从第2步开始。希望这可以帮助您。


看起来你没有完整地发布代码。你能否把所有的代码都添加上呢?谢谢。 - user2323030
我对Google Endpoints不熟悉。但是,当我弄清楚如何连接后,我发现使用云数据存储更容易。它更便宜且更易于设置。 - Gabriel
你在第一步具体在哪里?我看不到像你描述的那个菜单。 - user4458796
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - cfl
你进行到哪一步了? - Gabriel
显示剩余2条评论

6
你已经接近成功了。对于你来说,推荐的机制是通过REST服务公开你在App Engine上托管的功能,并从Android应用程序中调用这些服务。 Google通过Cloud Endpoints功能使这变得更加容易。这将帮助为你的移动后端生成一个Endpoints服务(类似于REST服务)。它还将生成一组客户端类(在.java中为你的Android应用程序),你可以轻松使用这些类从你的Android客户端调用服务。请查看这个深入教程,其中包括“如何使用App Engine构建移动应用程序”。

谢谢你的回答。我已经浏览了这个教程,但是我打算应用它,也许在那之后会更清楚。再次感谢 :) - Owehbeh
2
我看了那个教程,但它并没有讲述如何访问Cloud SQL,只展示了Datastore... - Micro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接