Подтвердить что ты не робот

Может ли приложение Android напрямую подключаться к онлайн-базе данных mysql

Android 3.3 API 18

Здравствуйте,

Я разрабатываю свое первое приложение, использующее android. Приложение должно будет подключиться к онлайн-базе данных для хранения пользовательских данных.

Я ищу облачное хранилище с включенной базой данных MySQL. Однако может ли мое приложение напрямую подключаться к этой базе данных MySQL и выталкивать данные из него? Или есть другие вещи, которые мне нужно сделать?

Большое спасибо за любые предложения,

4b9b3361

Ответ 1

Да, вы можете это сделать.

Материалы, которые вам нужны:

  • WebServer
  • База данных, хранящаяся на веб-сервере
  • И немного знание Android:)
  • 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. И затем, наконец, прочитайте jsontags и сохраните значения в arraylist, а затем покажите его в списке, если вы хотите

и если у вас есть какие-либо проблемы, вы можете следить за этим блогом он дает отличные обучающие материалы для Android. AndroidHive

Так как вышеупомянутый ответ, который я написал, был длинным, и теперь 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, Retrofit, чтобы вызвать webservice api и получить ответ, а затем проанализировать его с помощью FasterXML-jackson, google-gson.

Ответ 2

Вы можете использовать PHP, JSP, ASP или любую другую серверную часть script для подключения к базе данных mysql и возвращать данные JSON, которые вы можете проанализировать в приложении Android this ссылку, как это сделать

Ответ 3

Да, определенно вы можете подключиться к онлайн-базе данных MySql, чтобы создать веб-сервис. Этот веб-сервис предоставит вам доступ к базе данных MySql. Затем вы можете легко вытащить данные в базу данных MySql. PHP будет хорошим вариантом для создания веб-сервиса, который его просто реализовать. Удачи...

Ответ 4

Что вы хотите сделать, это плохая идея. Это потребует, чтобы вы ввели свое имя пользователя и пароль в приложение. Это очень плохая идея, так как можно было бы перепроектировать ваш APK и получить имя пользователя и пароль для этого публично настроенного сервера mysql, который может содержать конфиденциальные пользовательские данные.

Я бы предложил сделать веб-службу, чтобы выступать в качестве прокси-сервера для сервера mysql. Я предполагаю, что пользователи должны войти в систему, чтобы вы могли использовать свое имя пользователя/пароль для аутентификации в веб-службе.

Ответ 5

Посмотрите на этот онлайн-сервер.

Parse.com

Они предлагают push-уведомления, социальную интеграцию, хранение данных и возможность добавлять богатую пользовательскую логику в свои приложения с помощью Cloud Code.

Ответ 6

вы можете определенно сделать такое приложение, вам нужно сделать http-соединение с базой данных, вызвав PHP скрипт, который в ответ выполнит определенные запросы в соответствии с вашим проектом и сгенерирует результат в форме xml или json formate, который может отображаться на вашем приложении Android. для полного руководства по как подключить приложение Android к mysql я бы рекомендовал проверить эту туторилу

Ответ 7

шаг 1: создать веб-службу на своем сервере

шаг 2: сделайте свое приложение для вызова веб-службы и получите результирующие наборы

Ответ 8

На самом деле это очень просто. Но вы не можете достичь этого напрямую. Вам нужно выбрать технологию со стороны обслуживания. Вы можете использовать что-нибудь для этой части. И это то, что мы называем RESTful API или SOAP API. Это зависит от вас, что выбрать. Я сделал много проектов с обоими. Я бы предпочел REST. Итак, что произойдет, у вас будут некоторые скрипты на вашем веб-сервере, и вы знаете URL-адреса. Например, мы должны сделать регистрацию пользователя. И для этого мы имеем

mydomain.com/v1/userregister.php

Теперь со стороны Android вы отправите HTTP-запрос на указанный выше URL-адрес. И вышеприведенный URL-адрес будет обрабатывать регистрацию пользователя и даст вам ответ, будет ли операция успешной или нет.

Подробное объяснение приведенной выше концепции. Вы можете посетить следующую ссылку.

** Учебник Android MySQL для выполнения операции CRUD **