Saltar al contenido

Java con bases de datos. Crear conexión.

Conectar una aplicación java con bases de datos, nos permitirá manejar dicha información a través de una aplicación externa. Gracias a ello, podremos insertar, actualizar, eliminar o consultar la información de dicha base de datos. Todo ello, sin tener que acceder a la base de datos de manera física.

Generalmente, cuando accedemos a una BBDD desde un programa java, la información la encontraremos distribuida en tablas que se relacionan entre sí. Cuando dichas tablas están relacionadas entre sí, decimos que estamos accediendo a una BBDD relacional. Además, las bases de datos a las que vamos a poder acceder, se encontrarán dentro de un SGBD. Aunque podemos usar cualquier SGBD, para este ejemplo, utilizaremos el SGBD MySQL.

Índice de contenidos

    Establecimiento de conexiones en java con bases de datos.

    Para conectar una aplicación java con bases de datos, debemos seguir una serie de pasos obligatorios, que detallaremos a continuación. Vamos a crear un ejemplo con una base de datos que llamaremos gestión. Este ejemplo lo crearemos dentro de la clase que contiene el método main. Por este motivo, los métodos que crearemos serán de tipo «static» al igual que las variables necesarias.

    Pasos para conectar java con bases de datos.

    • Importar a nuestro proyecto el archivo jar con el driver correspondiente al SGBD al que queremos conectarnos. Para descargar el driver podemos hacerlo desde el siguiente enlace.
    • Importar las clases correspondientes en nuestro proyecto. Estas clases, se encuentran dentro del paquete java.sql de la API de este lenguaje de programación. Para poder importar dichas clases en nuestro proyecto haremos uso de la palabra reservada “import”. De la siguiente manera: “import java.sql.*;”.
    import java.sql.*;
    
    • Declararemos cuatro variables de tipo String a nivel de clase.
      • Una primera donde almacenaremos el driver correspondiente al SGBD que estamos utilizando. En caso del SGBD MySQL, el driver sería el siguiente: “com.mysql.jdbc.Driver”.
      • En la segunda almacenaremos la dirección del servidor donde se encuentra la BBDD junto al nombre de la misma. Generalmente, solemos trabajar con un servidor local, por lo tanto, la dirección del servidor será localhost. Hay que tener en cuenta, que debemos indicar también el puerto de la conexión. Esto no es obligatorio, pero si recomendable. Para almacenar dicha dirección lo haremos de la siguiente manera. “jdbc:mysql://localhost:3306/gestion”.
      • En las dos siguientes, almacenaremos el nombre de usuario y la contraseña de la base de datos. Esto debe ser así, para poder acceder a la base de datos en cuestión. Generalmente, si no se realizo ningún cambio, en el SGBD, el usuario será “root” y la contraseña una cadena vacía.
    /* Declaramos 4 variables con el driver, la bbdd, usuario y contraseña*/ 
    private static final String driver="com.mysql.jdbc.Driver";
    private static final String bbdd="jdbc:mysql://localhost:3306/gestion";
    private static final String usuario ="root";
    private static final String clave="";
    
    • Declarar el método correspondiente para poder conectarse con la base de datos.
    /* Creamos el método para conectarnos a la base de datos. Este método
        devolverá un objeto de tipo Connection.*/
    public static Connection Conexion(){
        /*Declaramos una variable para almacenar la cadena de conexión.
        Primero la iniciamos en null.*/
        Connection conex = null;
            
        //Controlamos la excepciones que puedan surgir al conectarnos a la BBDD
        try {
            //Registrar el driver
            Class.forName(driver);
            //Creamos una conexión a la Base de Datos
            conex = DriverManager.getConnection(bbdd, usuario, clave);
            
        // Si hay errores informamos al usuario. 
        } catch (Exception e) {
            System.out.println("Error al conectar con la base de datos.\n" 
                    + e.getMessage().toString());
        }
        // Devolvemos la conexión.
        return conex;
    }
    

    Por último, para conectarnos a la base de datos desde el método main lo haremos de la siguiente manera.

    public static void main(String[] args) {
    
        /*Declaramos una variable para almacenar la conexión que nos va a
        devolver el método Conexion(). Primero la iniciamos en null.*/
        Connection conex=null;
    
        /*Almacenamos lo que nos devuelve el método Conexion()
        en la variable conex*/
        conex = Conexion();
    
        // Si la variable objeto conex es diferente de nulo
        if(conex != null){
            // Informamos que la conexión es correcta
            System.out.println("Conectado correctamente");
        }else{ // Sino informamos que no nos podemos conectar.
            System.out.println("No has podido conectarte");
        }
    }
    

    Para finalizar con la conexión de java con bases de datos, veamos como queda el código completo.

    Ejemplo de código para conectar a una base de datos.

    En este ejemplo, vemos un ejemplo completo del código necesario para conectar a una bae de datos MySQL. No debemos olvidar que lo primero que debemos hacer es importar el archivo jar correspondiente al driver.

    package conexionbbdd;
    import java.sql.*;
    
    public class ConexionBBDD {
    
        /* Declaramos 4 variables con el driver, la bbdd, usuario y contraseña*/ 
        private static final String driver="com.mysql.jdbc.Driver";
        private static final String bbdd="jdbc:mysql://localhost/gestion";
        private static final String usuario ="root";
        private static final String clave="";
        
        /* Creamos el método para conectarnos a la base de datos. Este método
        devolverá un objeto de tipo Connection.*/
        public static Connection Conexion(){
            /*Declaramos una variable para almacenar la cadena de conexión.
            Primero la iniciamos en null.*/
            Connection conex = null;
            
            //Controlamos la excepciones que puedan surgir al conectarnos a la BBDD
            try {
                //Registrar el driver
                Class.forName(driver);
                //Creamos una conexión a la Base de Datos
                conex = DriverManager.getConnection(bbdd, usuario, clave);
            
            // Si hay errores informamos al usuario. 
            } catch (Exception e) {
                System.out.println("Error al conectar con la base de datos.\n" 
                        + e.getMessage().toString());
            }
            // Devolvemos la conexión.
            return conex;
        }
        
        public static void main(String[] args) {
            
            /*Declaramos una variable para almacenar la conexión que nos va a
            devolver el método Conexion(). Primero la iniciamos en null.*/
            Connection conex=null;
            
            /*Almacenamos lo que nos devuelve el método Conexion()
            en la variable conex*/
            conex = Conexion();
            
            // Si la variable objeto conex es diferente de nulo
            if(conex != null){
                // Informamos que la conexión es correcta
                System.out.println("Conectado correctamente");
            }else{ // Sino informamos que no nos podemos conectar.
                System.out.println("No has podido conectarte");
            }
        }   
    }
    

    Como cerrar la conexión con la base de datos.

    Para poder cerrar la conexión con la base de datos, necesitaremos un método el cual llamaremos cerrarConexión(). Este método recibirá por parámetro un objeto de tipo Connection para indicarle la conexión que debe cerrar.

    public static void cerrarConexion(Connection conex){
        try{
            // Cerramos la conexión
            conex.close();    
        }catch(SQLException e){
           /* Controlamos excepción en caso de que se pueda producir
            a la hora de cerrar la conexión*/
            System.out.println(e.getMessage().toString());
        }
    }
    

    Para poder cerrar la conexión con la base de datos una vez tenemos el método correspondiente, solo nos quedaría llamarlo de la siguiente manera.

    cerrarConexion(conex);