Androidアプリはオンラインのmysqlデータベースに直接接続できますか

ant2009
Android 3.3 API 18

こんにちは、

私はAndroidを使用して最初のアプリを開発しています。アプリは、ユーザーデータを保存するためにオンラインデータベースに接続する必要があります。

MySQLデータベースが含まれているクラウドストレージを探しています。ただし、アプリはこのMySQLデータベースに直接接続して、そこからデータをプッシュおよびプルできますか?それとも私がしなければならないことが他にありますか?

提案をありがとう、

ジェフィー・ラザール

はい、できます。

必要な材料:

  1. Webサーバー
  2. Webサーバーに保存されているデータベース
  3. そして少しアンドロイドの知識:)
  4. Webサービス(json、Xml ...など)あなたが快適なものなら何でも

1.まず、マニフェストファイルでインターネットのアクセス許可を設定します

 <uses-permission android:name="android.permission.INTERNET" />

2.サーバーからHTTPRequestを作成するクラスを作成します(値を取得するためにjson parisngを使用しています)

例:

    public class JSONfunctions {

    public static JSONObject getJSONfromURL(String url) {
        InputStream is = null;
        String result = "";
        JSONObject jArray = null;

        // Download JSON data from URL
        try {
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost(url);
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();

        } catch (Exception e) {
            Log.e("log_tag", "Error in http connection " + e.toString());
        }

        // Convert response to string
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            result = sb.toString();
        } catch (Exception e) {
            Log.e("log_tag", "Error converting result " + e.toString());
        }

        try {

            jArray = new JSONObject(result);
        } catch (JSONException e) {
            Log.e("log_tag", "Error parsing data " + e.toString());
        }

        return jArray;
    }
}

3.あなたはMainActivityクラスのオブジェクトを作成しJsonFunctions、あなたがデータを取得したい場所からURLを引数として渡します

例えば:

JSONObject jsonobject;

jsonobject = JSONfunctions.getJSONfromURL("http://YOUR_DATABASE_URL");

4.最後に、jsontagsを読み取り、値を配列リストに格納し、必要に応じて後でリストビューに表示します。

問題がある場合は、このブログをフォローしてください。彼は優れたAndroidチュートリアルAndroidHiveを提供しています。

私が書いた上記の答えが戻って、今長かったのでHttpClientHttpPostHttpEntityあなたはまだ継続して使用するbuild.gradle(アプリレベル)のコードの下に使用することができますアピ23で削除されたorg.apache.httpプロジェクトに。

android {
    useLibrary 'org.apache.http.legacy'
    signingConfigs {}
    buildTypes {}
}

またはHttpURLConnection以下のように使用して、サーバーから応答を取得できます

public String getJSON(String url, int timeout) {
HttpURLConnection c = null;
try {
    URL u = new URL(url);
    c = (HttpURLConnection) u.openConnection();
    c.setRequestMethod("GET");
    c.setRequestProperty("Content-length", "0");
    c.setUseCaches(false);
    c.setAllowUserInteraction(false);
    c.setConnectTimeout(timeout);
    c.setReadTimeout(timeout);
    c.connect();
    int status = c.getResponseCode();

    switch (status) {
        case 200:
        case 201:
            BufferedReader br = new BufferedReader(new InputStreamReader(c.getInputStream()));
            StringBuilder sb = new StringBuilder();
            String line;
            while ((line = br.readLine()) != null) {
                sb.append(line+"\n");
            }
            br.close();
            return sb.toString();
    }

} catch (MalformedURLException ex) {
    Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
    Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
} finally {
   if (c != null) {
      try {
          c.disconnect();
      } catch (Exception ex) {
         Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
      }
   }
}
return null;

}

またはあなたのようなサードパーティ製のライブラリを使用することができVolleyRetrofitWebサービスAPIを呼び出し、応答を取得し、後で使用してそれを解析するためにFasterXML-jacksongoogle-gson

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

AngularJSからMySQLデータベースに直接接続できますか?

分類Dev

Androidアプリのオンラインデータベースに接続できません

分類Dev

AWS:プライベートインスタンスからインターネットに直接接続されたロードバランサーにアクセスできるようにするセキュリティグループ

分類Dev

USB-イーサネットアダプターを介してプリンターをルーターに直接接続できますか?

分類Dev

ネットワークプリンター-各コンピューターはプリンターに直接接続できますか?

分類Dev

ネットワークプリンター-各コンピューターはプリンターに直接接続できますか?

分類Dev

iOSのリモートMySQLデータベースに直接接続する

分類Dev

Androidアプリの構築:ローカルホストのデータベースにデータを送信できますが、オンラインデータベースでは同じではありません

分類Dev

アプリのデータをオンラインリソースに保存できますか

分類Dev

SQLPLUSを使用してOracleデータベースリンクに直接接続するにはどうすればよいですか。

分類Dev

AWS CloudFrontディストリビューションをS3バケットにリンクし、1つのフォルダーパスをEC2インスタンスに直接接続できますか?

分類Dev

ファイアウォールがオンになっている場合、Androidアプリはデータベースに接続できません

分類Dev

クライアントマシンのMySQLdbはサーバーマシンのデータベースに接続できますか?

分類Dev

イオンアプリをMySQLデータベースに接続するにはどうすればよいですか?

分類Dev

イーサネットの壁のコンセントに直接接続できますか

分類Dev

OracleでESRIジオデータベースへの直接接続を確立すると、デバッグモードでないときにハングします

分類Dev

Quarkusアプリは複数のJMSブローカーインスタンスに接続できますか?

分類Dev

クラスタリング(NDBClusterまたはGalera)を使用している場合、nodejsアプリはどのようにしてフェイルオーバーMySQLサーバーの1つに接続できますか?

分類Dev

データベースのインデックス作成可能またはシリアルオーバーラップは可能ですか?

分類Dev

Kafkaの起動はzookeeperのタイムアウト(リモートサーバー)で失敗しますが、マシンはzookeeperに直接接続できます

分類Dev

sqlplus を使用してデータベースに直接接続できますが、ORACLE_SID を設定するときはできません

分類Dev

Blazeプランを使用したデータベースリアルタイムでの同時接続数は100に制限されています

分類Dev

オンラインデータベースを復元モードにすることはできますか?

分類Dev

デバイスがオフラインのときに Firebase リアルタイム データベースにアクセスすることはできますか?

分類Dev

Ubuntu 18.04 LTSは、インターネットに直接接続している場合、IPアドレスを取得できません

分類Dev

2つのスイッチ間の直接接続でリンクステータスを取得する必要がありますか?

分類Dev

直接接続のクライアントからのデータの読み込みをレポートしますが、本番サーバーからのデータは読み込みません

分類Dev

Elastic Beanstalkアプリケーションはデータベースに接続できませんが、サーバーは接続できます

分類Dev

オフライン時にローカルのmongodbデータベースを使用し、オンライン時にリモートのmongodbサーバーに同期するmeteorアプリを処理するにはどうすればよいですか?

Related 関連記事

  1. 1

    AngularJSからMySQLデータベースに直接接続できますか?

  2. 2

    Androidアプリのオンラインデータベースに接続できません

  3. 3

    AWS:プライベートインスタンスからインターネットに直接接続されたロードバランサーにアクセスできるようにするセキュリティグループ

  4. 4

    USB-イーサネットアダプターを介してプリンターをルーターに直接接続できますか?

  5. 5

    ネットワークプリンター-各コンピューターはプリンターに直接接続できますか?

  6. 6

    ネットワークプリンター-各コンピューターはプリンターに直接接続できますか?

  7. 7

    iOSのリモートMySQLデータベースに直接接続する

  8. 8

    Androidアプリの構築:ローカルホストのデータベースにデータを送信できますが、オンラインデータベースでは同じではありません

  9. 9

    アプリのデータをオンラインリソースに保存できますか

  10. 10

    SQLPLUSを使用してOracleデータベースリンクに直接接続するにはどうすればよいですか。

  11. 11

    AWS CloudFrontディストリビューションをS3バケットにリンクし、1つのフォルダーパスをEC2インスタンスに直接接続できますか?

  12. 12

    ファイアウォールがオンになっている場合、Androidアプリはデータベースに接続できません

  13. 13

    クライアントマシンのMySQLdbはサーバーマシンのデータベースに接続できますか?

  14. 14

    イオンアプリをMySQLデータベースに接続するにはどうすればよいですか?

  15. 15

    イーサネットの壁のコンセントに直接接続できますか

  16. 16

    OracleでESRIジオデータベースへの直接接続を確立すると、デバッグモードでないときにハングします

  17. 17

    Quarkusアプリは複数のJMSブローカーインスタンスに接続できますか?

  18. 18

    クラスタリング(NDBClusterまたはGalera)を使用している場合、nodejsアプリはどのようにしてフェイルオーバーMySQLサーバーの1つに接続できますか?

  19. 19

    データベースのインデックス作成可能またはシリアルオーバーラップは可能ですか?

  20. 20

    Kafkaの起動はzookeeperのタイムアウト(リモートサーバー)で失敗しますが、マシンはzookeeperに直接接続できます

  21. 21

    sqlplus を使用してデータベースに直接接続できますが、ORACLE_SID を設定するときはできません

  22. 22

    Blazeプランを使用したデータベースリアルタイムでの同時接続数は100に制限されています

  23. 23

    オンラインデータベースを復元モードにすることはできますか?

  24. 24

    デバイスがオフラインのときに Firebase リアルタイム データベースにアクセスすることはできますか?

  25. 25

    Ubuntu 18.04 LTSは、インターネットに直接接続している場合、IPアドレスを取得できません

  26. 26

    2つのスイッチ間の直接接続でリンクステータスを取得する必要がありますか?

  27. 27

    直接接続のクライアントからのデータの読み込みをレポートしますが、本番サーバーからのデータは読み込みません

  28. 28

    Elastic Beanstalkアプリケーションはデータベースに接続できませんが、サーバーは接続できます

  29. 29

    オフライン時にローカルのmongodbデータベースを使用し、オンライン時にリモートのmongodbサーバーに同期するmeteorアプリを処理するにはどうすればよいですか?

ホットタグ

アーカイブ