programing

Android 앱이 온라인 mysql 데이터베이스에 직접 연결할 수 있습니까?

bestcode 2022. 9. 23. 00:21
반응형

Android 앱이 온라인 mysql 데이터베이스에 직접 연결할 수 있습니까?

Android 3.3 API 18

안녕,

저는 안드로이드를 이용한 첫 앱을 개발 중입니다.앱은 사용자 데이터를 저장하기 위해 온라인 데이터베이스에 연결해야 합니다.

MySQL 데이터베이스가 포함된 클라우드 스토리지를 찾고 있습니다.단, MySQL 데이터베이스에 직접 접속하여 데이터를 푸시 및 풀 수 있습니까?아니면 제가 해야 할 다른 일이 있나요?

제안해 주셔서 감사합니다.

네, 할 수 있어요.

필요한 재료:

  1. 웹 서버
  2. 웹 서버에 저장된 데이터베이스
  3. Android에 대한 약간의 지식도 있습니다. :)
  4. Webservices(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. 마지막으로 jontags를 읽고 값을 배열 목록에 저장한 후 필요에 따라 목록 뷰에 표시합니다.

문제가 있으면 이 블로그를 팔로우 할 수 있습니다.그는 안드로이드 튜토리얼을 훌륭하게 제공하고 있습니다.하이브

위 답변은 예전이나 지금이나 쓰던 답변이기 때문에HttpClient,HttpPost,HttpEntity는 API 23에서 삭제되었습니다.build.gradle(앱 레벨)에서 다음 코드를 사용하여 계속 사용할 수 있습니다.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,Retrofitwebservice api를 호출하여 응답을 얻고 나중에 를 사용하여 구문 분석합니다.FasterXML-jackson,google-gson.

네가 하고 싶은 건 나쁜 생각이야.앱에 사용자 이름과 비밀번호를 입력해야 합니다.이는 APK를 리버스엔지니어링하여 기밀 사용자 데이터를 포함하는 이 공개적인 mysql 서버에 사용자 이름과 비밀번호를 가져올 수 있기 때문에 매우 좋지 않은 생각입니다.

mysql 서버의 프록시 역할을 하는 웹 서비스를 만들 것을 제안합니다.웹 서비스에 대한 인증을 위해 사용자 이름/비밀번호를 사용할 수 있도록 로그인해야 합니다.

PHP, JSP, ASP 또는 기타 서버 사이드 스크립트를 사용하여 mysql 데이터베이스와 연결하고 이를 해석할 수 있는 JSON 데이터를 안드로이드 앱에서 반환할 수 있습니다.이 링크는 어떻게 해야 합니다.

스텝 1 : 서버 상에서 웹 서비스를 만듭니다.

스텝 2: 어플리케이션이 웹 서비스에 콜을 발신하여 결과 세트를 수신하도록 합니다.

예. 웹 서비스를 만들어야 하는 MySql 온라인 데이터베이스에 연결할 수 있습니다.이 웹 서비스는 MySql 데이터베이스에 대한 액세스를 제공합니다.그러면 MySql Database에 데이터를 쉽게 풀어서 푸시할 수 있습니다.PHP는 구현하기 쉬운 웹 서비스를 만들기 위한 좋은 옵션이 될 것입니다.행운을 빈다...

이러한 어플리케이션은 확실히 만들 수 있습니다.데이터베이스에 http 접속을 하려면 php 스크립트를 호출하여 프로젝트에 따라 특정 쿼리를 실행하고 결과를 xml 또는 json formate 형식으로 생성해야 합니다.whihc는 안드로이드 어플리케이션에 표시될 수 있습니다!안드로이드 애플리케이션을 mysql에 연결하는 방법에 대한 자세한 튜토리얼은 이 튜토리얼을 확인해 보시기 바랍니다.

그것은 사실 매우 쉽다.하지만 당신이 직접 그것을 성취할 수 있는 방법은 없습니다.서비스 사이드 테크놀로지를 선택해야 합니다.이 부분은 아무거나 써도 돼요.이를 RESTful API 또는 SOAP API라고 합니다.무엇을 선택할지는 당신에게 달려 있습니다.저는 둘 다와 함께 많은 프로젝트를 해왔습니다.저는 휴식이 더 좋아요.그러면 웹 서버에 스크립트가 몇 개 있고 URL을 알 수 있습니다.예를 들어 사용자 등록을 해야 합니다.그리고 이를 위해 우리는

mydomain.com/v1/userregister.php

이제 Android 측에서 위의 URL로 HTTP 요청을 보냅니다. 그리고 위의 URL은 사용자 등록을 처리하여 작업이 성공했는지 여부에 대한 응답을 제공합니다.

위의 개념에 대한 자세한 설명은 다음과 같습니다.다음 링크를 방문하실 수 있습니다.

**CRUD 작업을 수행하기 위한 Android MySQL 튜토리얼**

이 온라인 백엔드를 보세요.

Parse.com

푸시 알림, 소셜 통합, 데이터 스토리지 및 클라우드 코드를 통해 앱 백엔드에 풍부한 사용자 지정 로직을 추가할 수 있는 기능을 제공합니다.

언급URL : https://stackoverflow.com/questions/19217835/can-an-android-app-connect-directly-to-an-online-mysql-database

반응형