sql >> データベース >  >> RDS >> Mysql

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

    はい、できます。

    必要な資料:

    1. WebServer
    2. Webサーバーに保存されているデータベース
    3. そしてAndroidに関する少しの知識:)
    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 Api 23で削除されました。build.gradle(app-level)で以下のコードを使用して、引き続き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;
    

    }

    または、Volleyなどのサードパーティライブラリを使用できます 、Retrofit WebサービスAPIを呼び出して応答を取得し、後でFasterXML-jacksonを使用して解析します。 、google-gson



    1. SQLServerの命名規則または命名規則に従ってすべてのデフォルト制約の名前を変更する方法-SQLServer/TSQLチュートリアルパート93

    2. OracleのCEIL()関数

    3. SQLで文字列を大文字に変換する方法

    4. SQL Server(T-SQL)のdatetimeoffset値のタイムゾーンオフセットを変更する