Conectar a PostgreSQL en Java con JDBC

En este tutorial enseño cómo crear un proyecto de Maven o Gradle (abre la descripción para ver las coordenadas) que utilice el driver JDBC de PostgreSQL para conectarse con un cluster desde una aplicación Java. Recuerda que para conectarte con una base de datos de JDBC necesitas instalar (y en algunos casos activar) un driver en tu proyecto para poder efectuar la conexión. Hacemos un ejemplo muy simple únicamente para probar que la conexión se hace de forma satisfactoria. Coordenadas de Maven: resulta que no puedo poner los símbolos de mayor qué y menor qué en las descripciones de YouTube así que no puedo poner el XML, pero os dejo el - groupId: org.postgresql - artifactId: postgresql - version: 42.6.0 Si usas Gradle, prueba a poner "org.postgresql:postgresql:42.6.0" en el bloque dependencies { } de tu proyecto.

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

Para conectar Java con una base de datos PostgreSQL utilizando JDBC, lo primero que debemos hacer es crear un proyecto en nuestro IDE favorito, como IntelliJ IDEA. Aunque el ejemplo se muestra con IntelliJ, el procedimiento es muy similar en otros entornos como Eclipse. Al crear el proyecto, es importante elegir un sistema de construcción que facilite la gestión de dependencias, como Maven o Gradle, ya que nos permitirán añadir el driver de PostgreSQL de forma sencilla y automática.

En lugar de usar el sistema de construcción propio de IntelliJ, que requiere configurar las dependencias manualmente, recomendamos optar por Maven o Gradle. Esto nos ahorra el trabajo de descargar y añadir el archivo JAR del driver a mano. En el caso de Maven, añadiremos la dependencia en el archivo pom.xml dentro de la etiqueta <dependencies>. La dependencia para el driver de PostgreSQL tiene el grupo org.postgresql y el artefacto postgresql. Por ejemplo, para la versión 42.6, que es la más reciente al momento de grabar, la configuración sería así:

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.6</version>
</dependency>

Si usamos Gradle, la configuración en el archivo build.gradle o build.gradle.kts será similar, incluyendo la misma coordenada org.postgresql:postgresql:42.6. Tras añadir la dependencia, debemos recargar el proyecto para que el IDE descargue y registre el driver en las librerías externas.

Una vez configurado el driver, podemos crear una clase Java con un método main para probar la conexión. Gracias a Maven o Gradle, no es necesario cargar explícitamente el driver con Class.forName, ya que estos sistemas se encargan de registrar el driver automáticamente. Esto simplifica el código y evita tener que lidiar con esa llamada manual.

Para establecer la conexión, utilizamos la clase DriverManager y su método getConnection, pasando una URL con el formato:

jdbc:postgresql://localhost:5432/escuela

Aquí, localhost es el servidor donde está la base de datos, 5432 es el puerto estándar de PostgreSQL y escuela es el nombre de la base de datos a la que queremos acceder. Si la base de datos requiere usuario y contraseña, podemos usar sobrecargas de getConnection que aceptan esos parámetros o un objeto Properties para pasarlos.

El código para conectar y ejecutar una consulta que recupere todos los alumnos de la tabla alumnos podría ser así:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class PostgresJDBCExample {
    public static void main(String[] args) throws SQLException {
        String url = "jdbc:postgresql://localhost:5432/escuela";

        try (Connection conn = DriverManager.getConnection(url);
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery("SELECT * FROM alumnos")) {

            while (rs.next()) {
                String nombre = rs.getString("nombre");
                String apellido = rs.getString("apellido");
                String fechaNacimiento = rs.getString("fecha_nacimiento");
                System.out.println("Alumno: " + nombre + " " + apellido + ", Nacido el: " + fechaNacimiento);
            }
        }
    }
}

Este bloque usa un try-with-resources para asegurar que la conexión, el statement y el result set se cierren automáticamente. La consulta SQL selecciona todos los registros de la tabla alumnos, y luego recorremos los resultados para imprimir el nombre, apellido y fecha de nacimiento de cada alumno.

Al ejecutar este programa, si todo está configurado correctamente, veremos en la consola los datos de los alumnos, lo que confirma que la conexión con PostgreSQL funciona y que el driver está bien instalado.

Este método básico nos permite empezar a trabajar con bases de datos en Java usando JDBC y PostgreSQL, y a partir de aquí podemos construir consultas más complejas, manejar transacciones y optimizar el acceso a datos según nuestras necesidades.

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