entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

¿Es correcta esta sentecia en java para conectar al servidor mysql?

Buenas estoy intentando realizar una app movil que conecte con un servidor mysql y ahora mismo tengo el siguiente codigo:

private Connection conectar(){
        Connection conn=null;
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            System.out.println("Registro exitoso");

        } catch (Exception e) {

            System.out.println(e.toString());

        }
        try {

            conn = DriverManager.getConnection(
                    "jdbc:mysql://rdbms.strato.de/DB2455197?"
                            + "user=XXXX&password=XXXX");

            // Otros y operaciones sobre la base de datos...

        } catch (SQLException ex) {

            // Mantener el control sobre el tipo de error
            System.out.println("SQLException: " + ex.getMessage());

        }
        return conn;
    }

Siendo XXXX los datos correctos de login que no pongo por razones obvias, y el resultado que obtengo es el siguiente: "java.net.ConnectException: failed to connect to rdbms.strato.de/192.67.198.61 (port 3306): connect failed: ETIMEDOUT (Connection timed out)"

Y no se si es culpa de que estoy haciendo mal la conexion o que no tengo bien los datos del servidor o no se ya lo que puede estar fallando porque el ejemplo esta copiado casi integro de internet y no funciona

Edit: he probado a hacerlo en localhost con la ip 10.0.2.2 y funciona perfectamente, esto quiere decir que es problema del servidor?

2 Respuestas

2votos

oscar rodriguez Puntos690

Vale, me acaban de comentar los del hosting que no permiten la conexion a la base de datos desde fuera de sus servidores, menuda putada, ese era el fallo, procedo a cerrar la pregunta

1voto

Peter comentado

Gracias por compartir la solución. :)

3votos

jrgm0005 Puntos2990

Hola prueba usando datasource.

Te dejo un ejemplo de código, ahora me comentas qué tal :)

Context context = new InitialContext();
DataSource dataSource = (DataSource) context.lookup("jdbc:mysql://rdbms.strato.de/DB2455197?"
                            + "user=XXXX&password=XXXX");

// Una vez que tenemos el datasource, creamos la conexión.

Connection conn = dataSource.getConnection();
Statement stmt = conn.createStatement();
// Lanzamos la consulta y obtenemos el resultSet con el resultado de nuestra consulta.

ResultSet rs = stmt.executeQuery("SELECT ID FROM TABLE");
...
// Cerrar todo para evitar problemas.
rs.close();
stmt.close();
conn.close();

Espero que te sirva,

Juan Ramón González Morales

1voto

oscar rodriguez comentado

Me sale cannot resolve symbol en InitialContext(), he probado a conectar con mi codigo en localhost y me conecta perfectamente y me saca la informacion sin problemas, eso quiere decir que es problema del servidor?

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta