How to connect my android application to an external database [duplicate]

this question already has answers here : How to use MySQL on Android (3 responses) Closed there 2 years .

I have a site with some tables in mysql database. The site is already connected in the database.

I have an application in Android Studio and would like to connect the application with the external database (mysql on the site). Without being SQLITE. How can I make this connection? Cross-Platform

Author: Gleydson Moreira, 2018-04-02

3 answers

First of all, you will need a connection class, I use this in my projects with help with php:

public class Conexao {

public static String postDados(String urlUsuario, String parametrosUsuario) {
    URL url;
    HttpURLConnection connection = null;

    try {

        url = new URL(urlUsuario);
        connection = (HttpURLConnection) url.openConnection();

        connection.setRequestMethod("POST");

        connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");

        connection.setRequestProperty("Content-Lenght", "" + Integer.toString(parametrosUsuario.getBytes().length));

        connection.setRequestProperty("Content-Language", "pt-BR");

        connection.setUseCaches(false);
        connection.setDoInput(true);
        connection.setDoOutput(true);

        OutputStreamWriter outPutStream = new OutputStreamWriter(connection.getOutputStream(), "utf-8");
        outPutStream.write(parametrosUsuario);
        outPutStream.flush();
        outPutStream.close();

        InputStream inputStream = connection.getInputStream();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));

        String linha;
        StringBuffer resposta = new StringBuffer();

        while((linha = bufferedReader.readLine()) != null) {
         resposta.append(linha);
            resposta.append('\r');
        }

        bufferedReader.close();

        return resposta.toString();

    } catch (Exception erro) {

        return  null;
    } finally {

        if(connection != null) {
            connection.disconnect();
        }
    }
}
}

Ready, now to use it you do this:

public class Main extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    String texto = "123";
    url = "url_do_seu_arquivo_php"; //Caso queira um get, só colocar na url
    //  ?variavel=valor

    //Parâmentros por post
    parametros = "texto=" + texto;

    new SolicitaDados().execute(url);

 }

 private class SolicitaDados extends AsyncTask<String, Void, String> {
    @Override
    protected  String doInBackground(String... urls) {

        return Conexao.postDados(urls[0], parametros);

    }

    @Override
    protected void onPostExecute(String resultado) {
        //String resultado tem o retorno


    }
 }
 }

So you send the posts and gets to your php file, for example, and there treats it by sending the data to mysql, if you want to receive something, in the url you put the path with php file and pass the parameters necessary for this to print the data, all the answer comes in the String "answer" in the onPostExecute

 0
Author: Woton Sampaio, 2018-04-02 03:10:11

You can use Firebase for this, in addition to database it offers you the possibility of authentication of users, pushNotifications and several other tools, and in addition it has a very generous free plan, so you will not need to spend anything at first. In addition to being multiplatform.

 0
Author: Reni Delonzek, 2018-04-02 03:40:04

MySql I think is not possible. There is a Google tool called FireBase not quite a database but it can serve what you need.

 -2
Author: Miure Silva, 2018-04-02 02:43:39