Estableciendo la conexión

Con el Driver instalado, hoy veremos cómo establecer una conexión JDBC con nuestra base de datos usando DriverManager.getConnection. En mi caso usando MySQL. La sintaxis es igual si usáis otro DBMS salvo por la URL, probablemente.

Hay una versión nueva de este curso. Haz clic aquí para revisar JDBC, la versión actualizada de este curso.

Para establecer una conexión con una base de datos en Java usando JDBC, lo primero que necesitamos es tener instalado el conector JDBC correspondiente a la base de datos que vayamos a utilizar. Una vez que contamos con esto, podemos crear un método principal donde implementaremos la lógica para conectarnos.

El punto clave para manejar la conexión es utilizar un objeto de tipo Connection. Sin embargo, cualquier operación con bases de datos puede lanzar una excepción de tipo SQLException, por lo que debemos envolver nuestro código dentro de un bloque try-catch para capturar y manejar estas excepciones adecuadamente. Por ahora, podemos imprimir la traza de la excepción para detectar posibles errores, aunque en un entorno real sería mejor usar un sistema de logging.

Para crear la conexión, JDBC nos ofrece la clase DriverManager con el método getConnection. Este método tiene varias sobrecargas, pero la más común y sencilla para empezar es pasarle una URL de conexión, junto con el usuario y la contraseña. La URL tiene un formato estándar que comienza con jdbc:, seguido del subprotocolo que depende del tipo de base de datos (por ejemplo, mysql o postgresql), y luego el subname, que incluye la dirección del servidor, el puerto y el nombre de la base de datos.

Por ejemplo, para MySQL, la URL podría ser algo así:

String url = "jdbc:mysql://localhost:3306/Ejemplo";
String usuario = "Ejemplo";
String contraseña = "Ejemplo";

Con estos datos, la conexión se establece así:

try {
    Connection conexion = DriverManager.getConnection(url, usuario, contraseña);
    System.out.println("Estoy dentro");
    // Aquí podríamos hacer consultas o cualquier operación con la base de datos
} catch (SQLException e) {
    e.printStackTrace();
}

Es fundamental recordar que una vez que terminamos de usar la conexión, debemos cerrarla para liberar recursos. Esto se puede hacer en un bloque finally, verificando que la conexión no sea null y manejando también posibles excepciones al cerrar:

finally {
    if (conexion != null) {
        try {
            conexion.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

Un detalle importante que a veces aparece en tutoriales antiguos es la necesidad de registrar manualmente el driver JDBC con una línea como:

Class.forName("com.mysql.cj.jdbc.Driver");

Esto era necesario en versiones anteriores a JDBC 4 para que el driver se registrara en la máquina virtual de Java. Sin embargo, desde JDBC 4 (incluido en Java 6 y posteriores), este paso es automático gracias a mejoras en el sistema de registro de drivers. Por lo tanto, si estamos usando versiones modernas, podemos omitir esta línea y nuestro código será más limpio.

Una vez establecida la conexión, podemos hacer muchas cosas: crear Statement para ejecutar consultas, manejar transacciones con commits y rollbacks, usar PreparedStatement para consultas parametrizadas, y establecer puntos de guardado (savepoints) para controlar mejor las transacciones. Estos temas los iremos explorando poco a poco.

Así, con esta base, ya podemos empezar a trabajar con bases de datos en Java de forma sencilla y segura, manejando excepciones y asegurándonos de liberar recursos correctamente.

Lista de reproducción
  1. 1
    Presentación de JDBC
    4 minutos
  2. 2
    Instalando MySQL
    7 minutos
  3. 3
    Creando tablas
    9 minutos
  4. 4
    Agregando el driver JAR
    7 minutos
  5. 5
    Estableciendo la conexión
    8 minutos
  6. 6
    Statement y ResultSet
    9 minutos
  7. 7
    Bobby Tables y PreparedStatement
    8 minutos
  8. 8
    Transacciones y MySQL
    6 minutos
  9. 9
    Transacciones, commits y rollbacks (parte 1)
    7 minutos
  10. 10
    Transacciones, commits y rollbacks (parte 2)
    6 minutos
  11. 11
    Ejemplo: Crear modelos
    9 minutos
  12. 12
    Ejemplo: Crear los DAO (parte 1)
    10 minutos
  13. 13
    Ejemplo: Crear los DAO (parte 2)
    12 minutos
  14. 14
    Ejemplo: Crear los DAO (parte 3)
    13 minutos
  15. 15
    Ejemplo: DAO Manager
    12 minutos
  16. 16
    Ejemplo: CRUD Alumnos (parte 1)
    15 minutos
  17. 17
    Ejemplo: CRUD Alumnos (parte 2)
    14 minutos
  18. 18
    Ejemplo: CRUD Alumnos (parte 3)
    13 minutos
  19. 19
    Ejemplo: CRUD Profesores
    25 minutos
  20. 20
    Ejemplo: CRUD Asignaturas
    alrededor de 1 hora
  21. 21
    Ejemplo: Login (final adelantado)
    17 minutos
  22. 22
    Conectar a PostgreSQL en Java con JDBC
    8 minutos
  23. 23
    Conectar a PostgreSQL en Kotlin con JDBC
    7 minutos
  24. 24
    Conectar a PostgreSQL en Java con JDBC (con NetBeans)
    10 minutos