如何在我的android应用程序(eclipse)中实现和使用google cloud sql

Posted

技术标签:

【中文标题】如何在我的android应用程序(eclipse)中实现和使用google cloud sql【英文标题】:How to implement and use google cloud sql in my android app (eclipse) 【发布时间】:2014-02-22 05:56:15 【问题描述】:

这看起来像一个愚蠢的问题,看起来我并没有在那里寻找答案。

问题是我正在开发一个 android 应用程序,并且在某个时候我对

谷歌云 SQL

谷歌应用引擎

所以我看了 20-30 篇教程并开始实施,但现在我被卡住了,找不到任何教程显示一步一步的简单 android 代码。

这是我所做的以及我现在遇到的问题:

-我的 android 应用运行良好,没有任何错误

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

-开启 Google Cloud SQL 服务及其 API 服务并为此付费

-在云端创建实例

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

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

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

我只是想知道事物是如何协同工作的?在哪里正确的方法,我必须做什么才能从云中实例中的表中获取我的数据......

我会很感激任何链接 :) 谢谢。

【问题讨论】:

一个月过去了,我还是想不通...我对Servlet和Endpoint类逻辑不熟悉...我阅读了很多教程,都是关于Web应用程序的,但是我正在开发一个android应用程序,我只需要代码来访问我的云sql数据库,从手机上运行的应用程序读取和写入......任何一个? :(这是我的高级项目:( 【参考方案1】:

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

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

    创建一个应用引擎连接的项目。文件 > 新建 > 其他 > Android > App Engine Connected Android 项目。 输入您的项目编号和 API 密钥。 创建项目后,右键单击生成的应用引擎项目 > Google > App Engine 设置,然后在应用程序 ID 字段中输入开发者控制台中的项目 ID。 右击生成应用引擎项目>谷歌>生成云端点客户端库 右键单击生成应用引擎项目 > Google > 部署到 App Engine

现在您可以从 Android 应用调用云 SQL 数据库。但是您必须将其作为 AsyncTask 来执行。在我这样做之前,它对我不起作用。创建一个 AsyncTask 类并在 doInBackground 中连接到您的数据库。我是这样做的:

  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 > Generate App Engine Backend 并从第 2 步开始。我希望这会有所帮助。

【讨论】:

您似乎没有发布完整的代码。你介意把它都加进去吗?谢谢。 这就是你所需要的。然后,您将运行查询并随心所欲地使用它。 我不熟悉 Google Endpoints。但是,在我弄清楚如何连接之后,我发现使用云数据存储更容易。它更便宜、更容易设置。 您在第 1 步中的确切位置?我没有看到像您描述的那样的菜单。 那是日食。你下载了eclipse的app engine SDK并安装了吗?【参考方案2】:

你快到了。推荐的机制是通过 REST 服务公开您的 App Engine 托管功能,并从您的 Android 应用程序调用这些服务。

Google 可通过 Cloud Endpoints 功能让您更轻松地做到这一点。这将有助于为您的移动后端生成端点服务(想想 REST 服务)。它还将生成一组客户端类(在您的 Android 应用程序的 .java 中),您可以轻松地使用这些类从您的 Android 客户端调用服务。

查看这个涵盖“How to build a mobile app with an App Engine backend”的深入教程

【讨论】:

感谢您的回答我已经阅读了本教程,但我将应用它,也许之后它会变得清晰。再次感谢:) 我浏览了那个教程,但它没有说明任何关于访问 Cloud SQL 的内容。它只显示数据存储...

以上是关于如何在我的android应用程序(eclipse)中实现和使用google cloud sql的主要内容,如果未能解决你的问题,请参考以下文章

Android/Eclipse:如何嵌入 .jar 文件?

为啥 logcat 在我的 Android 中不显示任何内容?

Android Studio - 如何使用库(来自 eclipse 项目)

Eclipse/Android:无法安装 Google API 目标

我无法在我的 Eclipse 上创建 apk

如何在适用于 Android 的 Eclipse 模拟器中启用 GPS [重复]