Conectar a PostgreSQL en Java con JDBC (con NetBeans)

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 una aplicación Java con una base de datos PostgreSQL, la forma más eficiente y moderna es utilizar Maven o Gradle para gestionar las dependencias, en lugar de hacerlo manualmente con ANT. JDBC es la API estándar en Java para interactuar con bases de datos, y gracias a los drivers específicos, como el de PostgreSQL, podemos conectar nuestra aplicación con la base de datos sin importar el fabricante.

El primer paso es crear un proyecto Java en nuestro entorno de desarrollo, por ejemplo NetBeans. Al crear el proyecto, elegimos la opción de Java con Maven o Java con Gradle, siendo estas las herramientas recomendadas para manejar las dependencias automáticamente. En el caso de Maven, una vez creado el proyecto, editamos el archivo pom.xml para agregar la dependencia del driver JDBC de PostgreSQL. Esta dependencia la podemos obtener fácilmente desde la página oficial jdbc.postgresql.org, donde nos ofrecen el fragmento XML listo para copiar y pegar. Por ejemplo, para la versión 4.2.6.0, la dependencia se vería así:

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

Si preferimos usar Gradle, el proceso es similar, aunque la página oficial no ofrece directamente el bloque para Gradle. En este caso, abrimos el archivo build.gradle de nuestro proyecto y dentro del bloque dependencies añadimos la línea con la dependencia en formato Gradle:

implementation 'org.postgresql:postgresql:4.2.6.0'

Es importante ajustar la versión según la más reciente disponible en el momento. Luego, recargamos el proyecto para que la dependencia se descargue y quede disponible.

Con la dependencia configurada, podemos escribir un pequeño programa para probar la conexión. La URL de conexión JDBC para PostgreSQL tiene la forma:

jdbc:postgresql://localhost/nombre_base_datos

Donde localhost puede ser reemplazado por la dirección IP o hostname del servidor donde esté la base de datos, y nombre_base_datos es el nombre de la base de datos a la que queremos acceder. El puerto por defecto es 5432, y si es necesario, se puede especificar en la URL.

Para establecer la conexión, usamos el método DriverManager.getConnection, pasando la URL, el usuario y la contraseña. Por ejemplo:

String url = "jdbc:postgresql://localhost/escuela";
String usuario = "postgres";
String contraseña = "contraseña";

Connection connection = DriverManager.getConnection(url, usuario, contraseña);

En el ejemplo práctico, para simplificar, se omitió la contraseña configurando PostgreSQL para que no la requiera, aunque esto no es recomendable en entornos reales.

Una vez establecida la conexión, podemos crear un Statement para ejecutar consultas SQL. Por ejemplo, para obtener datos de una tabla alumnos:

Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT nombre, apellido, fecha_nac FROM alumnos");

while (resultSet.next()) {
    String nombre = resultSet.getString("nombre");
    String apellido = resultSet.getString("apellido");
    Date fechaNac = resultSet.getDate("fecha_nac");
    System.out.println(nombre + " " + apellido + " " + fechaNac);
}

Este código imprime en consola los datos recuperados de la base de datos, confirmando que la conexión y la consulta funcionan correctamente.

Finalmente, para quienes prefieran usar Gradle, el mismo código se puede ejecutar sin cambios, siempre que la dependencia esté correctamente configurada en el build.gradle. Al ejecutar la aplicación con Gradle, veremos que los resultados son idénticos, demostrando que ambas herramientas son igualmente válidas para gestionar proyectos Java con conexión a PostgreSQL.

En definitiva, usar Maven o Gradle para manejar el driver JDBC de PostgreSQL facilita mucho el trabajo, evitando tener que descargar y gestionar manualmente los archivos JAR. Además, no es necesario cargar explícitamente el driver con Class.forName, ya que estas herramientas y el propio JDBC se encargan de ello automáticamente, haciendo el desarrollo más ágil y limpio.

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