sql >> Base de Datos >  >> RDS >> PostgreSQL

No puedo conectar mi aplicación Android Studio con PostgreSQL

Finalmente funciona, la solución es solo extender AsyncTask, porque Android protege el entorno de tiempo de ejecución del proceso congelado, por lo que cuando extiende AsyncTask, inicie otro subproceso paralelo, en resumen, debe extender la clase de conexión de esta manera:

public class  PostgreSqlJDBC  extends AsyncTask <Void, Void, Void> {
static String cadenaConexion = "jdbc:postgresql://YOUR_HOST/YOUR_BDD?" + "user=postgres&password=YOURPASSWORD";
static String respuestaSql= "vacia";

public PruebaConn() {
}
public String getRespuestaSql (){
    execute();
    return respuestaSql;
}

@Override
public Void doInBackground(Void... params) {
    Connection conexion = null;
    Statement sentencia = null;
    ResultSet resultado = null;
    try {
        Class.forName("org.postgresql.Driver");
        conexion = DriverManager.getConnection(cadenaConexion);
        sentencia = conexion.createStatement();
        String consultaSQL = "SELECT * FROM activities";
        resultado = sentencia.executeQuery(consultaSQL);
        respuestaSql = "";
        while (resultado.next()) {
            int id = resultado.getInt("IdActivity");
            String Nombre = resultado.getString("NameActivity");
            respuestaSql = respuestaSql + id + " | " + Nombre +  "\n";
        }
    } catch (Exception e) {
        e.printStackTrace();
        System.err.println(e.getMessage());
        System.err.println("Error: Cant connect!");
        conexion = null;
    } finally {
        if (resultado != null) {
            try {
                resultado.close();
            } catch (Exception e) {
                e.printStackTrace();
                System.err.println(e.getMessage());
            }
        }
        if (sentencia != null) {
            try {
                sentencia.close();
            } catch (Exception e) {
                e.printStackTrace();
                System.err.println(e.getMessage());
            }
        }
        if (conexion != null) {
            try {
                conexion.close();
            } catch (Exception e) {
                e.printStackTrace();
                System.err.println(e.getMessage());
            }
        }
    }
    System.err.println("----- PostgreSQL query ends correctly!-----");
    return null;
  }
}