Conectar con MySQL utilizando el driver JDBC en Java – MySQL JDBC

Conectar con MYSQL o Mariadb utilizando el driver JDBC en Java

Vamos a conectar con MySQL en mi caso conMariaDB (que es un fork de MySQL), pero sea cual sea la base de datos que utilices el código que se utiliza y el driver es válido en cualquier caso para establecer una conexión con MySQL JDBC.

  1. Descarga e instalación el driver de MySQL
  2. Establecemos una conexión básica
  3. Creamos un método para establecer una conexión genérica


 

1. Descarga e instalación el driver de MySQL

Si necesitas información para la instalación de MySQL (MariaDB) la puedes encontrar en mi guía en el apartado: Instalación de MariaDB

Ahora vamos a descargar el driver (descárgalo aquí: MySQL o MariaDB) y añadirlo al proyecto, en este ejemplo uso Netbeans, puedes ver una explicación de como añadir una librería en Netbeans añadir librería Apache Poi Java API si lo necesitas, ya que el proceso es el mismo para cualquier librería.


 

2. Establecemos una conexión básica

Lo primero es registrar el driver que vamos a utilizar para ello usamos el código:

            // We register the MySQL (MariaDB) driver
            // Registramos el driver de MySQL (MariaDB)
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException ex) {
                System.out.println("Error al registrar el driver de MySQL: " + ex);
            }

Echo esto el siguiente paso es establecer la conexión utilizando la clase java.sql.DriverManager, donde rellenamos los datos de url : “jdbc:mysql://192.168.0.26:3306/customerdb” , usuario : “xulescode” y password : “xulescode”, quedando así:

            Connection connection = null;
            // Database connect
            // Conectamos con la base de datos
            connection = DriverManager.getConnection(
                    "jdbc:mysql://192.168.0.26:3306/customerdb",
                    "xulescode", "xulescode");

En el código completo de la clase simplemente añado un método para la consulta de la validez de la conexión para mostrar un mensaje por consola y en el método main la llamada para la creación de la conexión MySQL JDBC:


package org.xulescode.database;

import java.sql.*;

/**
 * Basic connection to MySQL (MariaDB) database. 
 * Conexión básica a la base de datos MySQL (MariaDB).
 *
 * @author Xules You can follow me on my website http://www.codigoxules.org/en
 * Puedes seguirme en mi web http://www.codigoxules.org).
 */
public class JavaMySQLBasic {

    /**
     * We establish the connection with the database <b>customerdb</b>.
     * Establecemos la conexión con la base de datos <b>customerdb</b>.
     */
    public void connectDatabase() {
        try {
            // We register the MySQL (MariaDB) driver
            // Registramos el driver de MySQL (MariaDB)
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException ex) {
                System.out.println("Error al registrar el driver de MySQL: " + ex);
            }
            Connection connection = null;
            // Database connect
            // Conectamos con la base de datos
            connection = DriverManager.getConnection(
                    "jdbc:mysql://192.168.0.26:3306/customerdb",
                    "xulescode", "xulescode");
            boolean valid = connection.isValid(50000);
            System.out.println(valid ? "TEST OK" : "TEST FAIL");
        } catch (java.sql.SQLException sqle) {
            System.out.println("Error: " + sqle);
        }
    }  
    /**
     * Testing Java MySQL connection with host and port
     * Probando la conexión en Java a MySQL especificando el host y el puerto.
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        JavaMySQLBasic javaMySQLBasic = new JavaMySQLBasic();
        javaMySQLBasic.connectDatabase(); 
    }    
}


 

3. Creamos un método para establecer una conexión genérica

Creamos un método nuevo añadiéndole los parámetros para establecer la conexión: host, puerto, usuario y password, lo que nos vamos a permitir reutilizarlo para múltiples bases de datos. Sin complicarnos muchos añadimos este código a la clase anterior:

    /**
     * Method to connect to the database by passing parameters.
     * Método para establecer la conexión a la base de datos mediante el paso de parámetros.
     * 
     * @param host <code>String</code> host name or ip. Nombre del host o ip.
     * @param port <code>String</code> listening database port. Puerto en el que escucha la base de datos.
     * @param database <code>String</code> database name for the connection. Nombre de la base de datos para la conexión.
     * @param user <code>String</code> user name. Nombre de usuario.
     * @param password  <code>String</code> user password. Password del usuario.
     */
    public void connectDatabase(String host, String port, String database,
            String user, String password) {
        String url = null;
        try {
            // We register the MySQL driver
            // Registramos el driver de MySQL
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException ex) {
                System.out.println("Error al registrar el driver de MySQL: " + ex);
            }
            Connection connection = null;
            url ="jdbc:mysql://" + host + ":" + port + "/" + database;
            // Database connect
            // Conectamos con la base de datos
            connection = DriverManager.getConnection(
                    url,
                    user, password);           
            boolean valid = connection.isValid(50000);
            System.out.println(valid ? "TEST OK" : "TEST FAIL");
        } catch (java.sql.SQLException sqle) {
            System.out.println("Error al conectar con la base de datos de MySQL (" + url + "): " + sqle);
        }
    }    

Es es código completo final añadiendo el nuevo método, con las pruebas en el main de los dos ejemplos:

package org.xulescode.database;

import java.sql.*;

/**
 * Basic connection to MySQL (MariaDB) database. 
 * Conexión básica a la base de datos MySQL (MariaDB).
 *
 * @author Xules You can follow me on my website http://www.codigoxules.org/en
 * Puedes seguirme en mi web http://www.codigoxules.org).
 */
public class JavaMySQLBasic {

    
    /**
     * We establish the connection with the database <b>customerdb</b>.
     * Establecemos la conexión con la base de datos <b>customerdb</b>.
     */
    public void connectDatabase() {
        try {
            // We register the MySQL (MariaDB) driver
            // Registramos el driver de MySQL (MariaDB)
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException ex) {
                System.out.println("Error al registrar el driver de MySQL: " + ex);
            }
            Connection connection = null;
            // Database connect
            // Conectamos con la base de datos
            connection = DriverManager.getConnection(
                    "jdbc:mysql://192.168.0.26:3306/customerdb",
                    "xulescode", "xulescode");
            boolean valid = connection.isValid(50000);
            System.out.println(valid ? "TEST OK" : "TEST FAIL");
        } catch (java.sql.SQLException sqle) {
            System.out.println("Error: " + sqle);
        }
    }    
    
    /**
     * Method to connect to the database by passing parameters.
     * Método para establecer la conexión a la base de datos mediante el paso de parámetros.
     * 
     * @param host <code>String</code> host name or ip. Nombre del host o ip.
     * @param port <code>String</code> listening database port. Puerto en el que escucha la base de datos.
     * @param database <code>String</code> database name for the connection. Nombre de la base de datos para la conexión.
     * @param user <code>String</code> user name. Nombre de usuario.
     * @param password  <code>String</code> user password. Password del usuario.
     */
    public void connectDatabase(String host, String port, String database,
            String user, String password) {
        String url = null;
        try {
            // We register the MySQL driver
            // Registramos el driver de MySQL
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException ex) {
                System.out.println("Error al registrar el driver de MySQL: " + ex);
            }
            Connection connection = null;
            url ="jdbc:mysql://" + host + ":" + port + "/" + database;
            // Database connect
            // Conectamos con la base de datos
            connection = DriverManager.getConnection(
                    url,
                    user, password);           
            boolean valid = connection.isValid(50000);
            System.out.println(valid ? "TEST OK" : "TEST FAIL");
        } catch (java.sql.SQLException sqle) {
            System.out.println("Error al conectar con la base de datos de MySQL (" + url + "): " + sqle);
        }
    }    
    /**
     * Testing Java MySQL connection with host and port
     * Probando la conexión en Java a MySQL especificando el host y el puerto.
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        JavaMySQLBasic javaMySQLBasic = new JavaMySQLBasic();
        javaMySQLBasic.connectDatabase();
        javaMySQLBasic.connectDatabase("192.168.0.26", "3306", "customerdb","xulescode", "xulescode");
    }    
}

Documentación

Espero que te sea útil.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *