Comunicar Java con base de datos MySQL

Comunicar Java con MySQL es una de las principales dudas que los principiantes en Java solemos tener. El siguiente post pretende ser una guía para aquellos que desean comunicar sus aplicaciones en Java con bases de datos en MySQL alojadas localmente. Se muestra, al final del post, como hacer una consulta e imprimir los registros de la base de datos en la consola de Java.

 

En aportes anteriores he mostrado como crear una base de datos en MySQL con XAMPP. De hecho, aquí les traigo el video que hice en aquella ocasión:

Ahora me gustaría mostrarles como “conectar” un programa en Java con una base de datos en MySQL. Para ello voy a crear una base de datos en mi máquina utilizando PHPMyAdmin que está disponible en XAMPP. La llamaré PanamaHitek_Text.

MySQL_Java

 

Dentro voy a colocar una tabla llamada Registro con 3 columnas.

MySQL_Java

 

MySQL_Java

 

Ahora voy a introducir un par de registros a la base de datos con mi información y la de mi perro.

MySQL_Java

 

MySQL_Java

Ahora vamos a crear la aplicación en Java. Vamos a necesitar el driver JDBC que es el que nos permite hacer la conexión con una base de datos MySQL. El driver lo podemos descargar del siguiente enlace:

MySQL Driver JDBC

Crearemos un proyecto llamado MySQL_Test. Dentro agregaremos una clase llamada MySQL.

MySQL_Java

Dentro de la clase MySQL vamos a colocar la siguiente programación.

 

Esta clase se encarga de iniciar la conexión con la base de datos. Es importante establecer el servidor, nombre de la base de datos, nombre de usuario y contraseña.

En el caso de las bases de datos locales, el servidor es localhost y el puerto 3306. En bases de datos remotas se utiliza la IP del servidor donde se encuentra alojada la base de datos.

Ahora vamos a probar la conexión.Se debe haber agregado el driver JDBC. En el método principal de la clase MySQL_test se coloca el siguiente código:

 

Al ejecutar el programa, se obtiene el siguiente resultado.

MySQL_Java

Debemos tener en cuenta que para que esto funcione, debemos tener XAMPP corriendo e iniciar los servidores Apache y MySQL.

MySQL_Java

 

Vamos a llevar a cabo una consulta para introducirnos un poco más en lo que es la programación con MySQL.

Vamos a hacer una lectura sobre los registros de la base de datos, que son 2 (mi información y la de Golden).

Vamos a modificar el método Main de la clase MySQL_Test. Colocamos lo siguiente:

 

El resultado obtenido debe ser el siguiente.

MySQL_Java

 

 

Espero que la información suministrada sea de utilidad para ustedes. Saludos.

¿Te gustó? ¡Comparte!Share on LinkedInShare on FacebookTweet about this on TwitterEmail this to someoneShare on RedditShare on TumblrShare on Google+Pin on PinterestBuffer this page
  • Cristóbal Andre Torregrosa Jar

    Todo bien, pero tuve un problema con la ultima linea:

    catch (SQLException ex){
    Logger.getLogger(MySQL_Test.class.getName()).log(Level.SEVERE, null, ex);
    }

    No me deja compilar

  • Cesar Herbas

    disculpa soy nuevo en netbeans…te cuento q tengo un pequeño problema con la conexion, mi proyecto corre pero tarda mucho en responderme, y me muestra una ventana de errores al final(adjunto la captura de pantalla), cierro esa ventana y me muestra la pequeña venta de conexion exitosa https://uploads.disquscdn.com/images/170dc6bc8789018079f8c815382d23125ac602a1d85831d32d581e6932e5ee93.png

    • Antony García González

      Parece un problema con el driver de JDBC o algo con un trycatch. Comparte tu código a ver que será

      • Cesar Herbas

        //este es mi codigo de la clase Mysql, he cambiado el puerto a 8080 por que el 80
        //ya lo tenia ocupado
        package test_mysql;

        import java.sql.Connection;
        import java.sql.DriverManager;
        import java.sql.ResultSet;
        import java.sql.SQLException;
        import java.sql.Statement;
        import javax.swing.JOptionPane;

        public class Mysql {

        Connection conexion = null;
        Statement comando = null;
        ResultSet registro;

        public Connection MySQLConnect() {

        try {
        //Driver JDBC
        Class.forName(“com.mysql.jdbc.Driver”);
        //Nombre del servidor. localhost:3306 es la ruta y el puerto de la conexión MySQL
        //panamahitek_text es el nombre que le dimos a la base de datos
        String servidor = “jdbc:mysql://localhost:8080/ProyectoUmss”;
        //El root es el nombre de usuario por default. No hay contraseña
        String usuario = “root”;
        String pass = “”;
        //Se inicia la conexión
        conexion = DriverManager.getConnection(servidor, usuario, pass);
        } catch (ClassNotFoundException ex) {
        JOptionPane.showMessageDialog(null, ex, “Error en la conexión a la base de datos: ” + ex.getMessage(), JOptionPane.ERROR_MESSAGE);
        conexion = null;
        } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, ex, “Error en la conexión a la base de datos: ” + ex.getMessage(), JOptionPane.ERROR_MESSAGE);
        conexion = null;
        } catch (Exception ex) {
        JOptionPane.showMessageDialog(null, ex, “Error en la conexión a la base de datos: ” + ex.getMessage(), JOptionPane.ERROR_MESSAGE);
        conexion = null;
        } finally {
        JOptionPane.showMessageDialog(null, “Conexión Exitosa”);
        return conexion;
        }
        }
        }

        • Antony García González

          Creo que en el cambio del puerto es donde está el problema