Conexiones y consultas a una base de datos remota con Java en MySQL

Voy a explicar como hacer consultas a una base de datos alojada en un servidor web por ejemplo, desde una aplicación java.

Lo primero que hay que hace es descargar el archivo¬† mysql-connector en la versi√≥n actual, en mi caso la √∫ltima version que he encontrado a dia de hoy (21-01-2011) “mysql-connector-java-5.1.14-bin.jar”. Esto es una extensi√≥n para conectarte desde java a una base de datos MySQL.¬† La direcci√≥n donde lo podeis bajar es: “http://www.mysql.com/downloads/connector/j/”.
Una vez descargado el archivo, lo copiais en la carpeta jre\lib\ext del directorio donde se encuentra instalado el JDK. En mi caso est√° en “C:\Archivos de programa\Java\jdk1.6.0_19\jre\lib\ext”. Una vez ah√≠ ya podemos empezar a utilizarla.

Ya en el código lo primero que tenemos que hacer es incluir la libreria sql:

import java.sql.*;

El segundo paso es establecer la conexión con el servidor:

try {
 Class.forName("com.mysql.jdbc.Driver");
 String bd = "jdbc:mysql://TuDominio.com:3306/NombreBD";
 Connection cn = DriverManager.getConnection(bd,"usuario","contraseña");
}
catch (Exception e){
  e.printStackTrace(); //imprime los errores si los hay
}

TuDominio.com puede ser la IP de la m√°quina donde este alojada la base de datos, o el dominio que la apunta, y el NombreBD es el nombre de la base de datos (usuarios, productos, … ), y el usuario y contrase√±a que tengan permisos para acceder a la bd.

El siguiente paso es hacer consultas SQL. Esto lo hacemos de la siguiente manera:

Statement statement = connection.createStatement();
ResultSet resultset = statement.executeQuery("Select * from usuario");

Este código ejecutará esta consulta y la almacenara en la variable resultset.

Para acceder a los datos de cada resultado debemos realizar lo siguiente:

resultset.next(); //primera fila devuelta
resultset.next(); //segunda fila devuelta
...

String nombreUsuario = resultset.getString("nombre");

De esta manera obtenemos el nombre (suponiendo que es una columna de la tabla usuario) de un usuario de la bd.

Espero que os haya sido de ayuda!! Saludos!!

This entry was posted in Java, MySQL. Bookmark the permalink.

4 Responses to Conexiones y consultas a una base de datos remota con Java en MySQL

  1. Everardo says:

    bueno, y si en lugar de dominio esta alojada en, no se, otra computadora?
    solo cambio “MiDominio”, por “MiIP”, o como?

    Gracias de antemano

  2. thunk says:

    hola, podr√≠as ser un poco m√°s espec√≠fico respecto a como recuperar los datos? o sea, ese result.next() simboliza la primera fila y la segunda devuelta? cuando ejecutas: String nombreUsuario = resultset.getString(“nombre”);
    obtienes 2 elementos que serían 2 nombres de la tabla?
    ojal√° puedas ayudar. saludos.

  3. Adrian says:

    Hola que tal, estoy intentando hacer una conexion remota con este servicio de hosting
    http://nubehost.mx
    pero no le he conseguido, de esta manera hago mi conexion

    import java.sql.*;

    public class ConexionDataBase{
    public String db = “PRUEBA_PRODUCTOS”;
    public String url = “jdbc:mysql://50.28.50.215:3306/”+db;
    // public String url = “jdbc:mysql://http://delcontinenteuniformes.misite.mx:3306/”+db;
    public String users = “duser”;
    public String pass = “********”;

    public ConexionDataBase (){

    }

    public Connection Conectar() {

    Connection link = null;
    try
    {
    //cargamos el driver de Mysql
    Class.forName(“org.gjt.mm.mysql.Driver”);
    // creamos el enlace a la base de datos
    link= DriverManager.getConnection(this.url, this.users, this.pass);

    } catch (Exception e)
    {
    JOptionPane.showMessageDialog(null, e);
    e.printStackTrace();

    }
    return link;

    }

    }

    me sale este error:

    java.sql.SQLException: Must specify port after ‘:’ in connection string

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>