Para usar JDBC en Java tendrás que agregar un driver. El propósito de un driver es enseñarle a JDBC a utilizar una base de datos concreta. La idea es que JDBC es una API neutra y universal que sólo sabe de cosas estandar en SQL, como el concepto de query, de statement, de result set... Pero que requiere de un driver para hacer la traducción entre los comandos que le damos a JDBC y los que realmente se envían a la base de datos, adaptándolo al protocolo de comunicaciones de la misma.

Sin embargo, en lo que te importa a ti, uno de los primeros pasos que tendrás que hacer cuando crees un proyecto que use JDBC, será averiguar qué tipo de base de datos es la que vas a utilizar en tu proyecto, y agregarle el driver que te haga falta para poder establecer la conexión. Puede que tu proyecto ya tenga una base de datos asignada, o puede que tengas que elegirla.
Algunos ejemplos:
- Si estás usando PostgreSQL, puedes usar el PostgreSQL JDBC Driver. Visita el área de descargas y usa el botón Copy Maven para copiar las coordenadas de Maven, o bien descarga manualmente el JAR si lo necesitas.
- Si fueses a trabajar con MySQL, necesitarías el MySQL Connector/J, que puedes obtener desde su web, o bien agregando las coordenadas para tu proyecto de Maven.
- El conector de MariaDB también se llama MariaDB Connector/J, pero en este caso está especializado en conexiones con MariaDB. En su web puedes encontrar coordenadas para Maven, Gradle o el uso manual del JAR.
- Incluso si necesitas MS SQL, Microsoft tiene un conector JDBC, que puedes descargar desde Maven Central para agregar en tu proyecto de Maven o de Gradle.
¿Cómo agregar el driver?
Las instrucciones dependen bastante de la manera en la que estés configurando tu proyecto.
Si estás usando Maven, como te dije, lo que tienes que hacer es agregar las coordenadas de Maven a tu archivo pom.xml. Estas coordenadas son un bloque XML que tiene normalmente una forma como la siguiente:
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>9.3.0</version>
</dependency>
En tu archivo pom.xml, localiza la etiqueta <dependencies> que cuelga directamente de <project>. (Ten en cuenta que puede haber otras secciones <dependencies> en los archivos pom.xml más complejos). Si no la encuentras, solo agrega esa etiqueta al final del pom.xml, antes del cierre de </project>, y entre medias mete tus coordenadas.
<project ...>
... <!-- Más configuración -->
<dependencies>
... <!-- Otras dependencias -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>9.3.0</version>
</dependency>
</dependencies>
</project>
Si estás usando Gradle, deberás localizar las coordenadas Gradle. Típicamente tienen la siguiente forma:
implementation 'org.mariadb.jdbc:mariadb-java-client:3.5.3'
O bien, si estás usando Gradle con Kotlin,
implementation('org.mariadb.jdbc:mariadb-java-client:3.5.3')
Esa línea la tienes que agregar en tu build.gradle junto al resto de dependencias que tengas en tu proyecto.
Si estás usando otra tecnología como bld, o si lo estás haciendo a mano en tu IDE, siempre puedes consultar su manual de instrucciones para ver cómo agregar dependencias en tu caso.
¿Cómo verificar que el driver está ahí?
Por lo general, desde hace ya 20 años a estas alturas los drivers se configuran automáticamente siempre que ejecutes tu programa teniendo el driver en el classpath. En otras palabras, una vez que hayas agregado el driver a tu proyecto, sobre todo si estás usando Maven o Gradle, ya lo tendrás listo para utilizar. Sobre este tema abro debate en la siguiente lección.
De todos modos, como prueba, vamos a confirmar que el driver está ahí llamando a uno de los métodos de DriverManager, que es la clase que, como su propio nombre indica, se ocupa de administrar los distintos drivers identificados por el sistema. El método estático drivers() nos devuelve todos los drivers reconocidos como instancias de Driver, así que podemos iterar sobre ellos para sacar información:
// Como un stream.
DriverManager.drivers().forEach(driver -> System.out.println(driver.toString()));
var drivers = DriverManager.drivers().toList();
foreach (driver d : drivers) {
System.out.println(d.toString());
}
Si al ejecutar este código en tu main, te encuentras una línea que menciona algo como org.postgresql.Driver, o en general, un nombre de clase correspondiente al driver que hayas instalado, será que el driver ha sido reconocido y está listo para ser usado y conectarse a la base de datos. Si no aparece, es posible que no esté bien agregado, o que tu driver no sea compatible con JDBC 4 y por lo tanto tengas que agregarlo a mano. Esto sería extremadamente raro a estas alturas, pero si estás usando un driver exótico de una base de datos desconocida y muy enterprise, tal vez debas consultar el manual de instrucciones para verificar esto, o bien examinar su manual, por si acaso.