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

0

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

I have an application in Android Studio and would like to connect the application with the external database (mysql on the site). Other than SQLITE. How can I make this connection? cross-platform

    
asked by anonymous 02.04.2018 / 04:11

3 answers

0

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 you send the data to mysql, if you want to receive something, in the url you put the path with php file and pass the necessary parameters for this print the data, the entire answer comes in the String "response" in the onPostExecute

    
02.04.2018 / 05:10
0

You can use Firebase for this, in addition to the database it offers you the possibility of user authentication, pushNotifications and several other tools, and besides it has a very generous free plan, so you do not have to spend nothing at first. In addition to being cross-platform.

    
02.04.2018 / 05:40
-2

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

    
02.04.2018 / 04:43