Aprende a conectar Java con PostgreSQL usando JDBC: configuración, Connection, PreparedStatement, ResultSet y cómo organizarlo con DatabaseConnection y un DAO.
Conexión JDBC: DatabaseConnection y BirdsDAO

JDBC (Java Database Connectivity) es la API estándar para conectar Java con bases de datos relacionales. Dominar JDBC es esencial antes de usar frameworks como JPA/Hibernate.

1) Dependencia del driver

Si usas Maven, normalmente añades el driver de PostgreSQL en tu pom.xml.

2) DatabaseConnection: centralizar la conexión

public class DatabaseConnection {
  private final String url;
  private final String user;
  private final String password;

  public DatabaseConnection(String url, String user, String password) {
    this.url = url;
    this.user = user;
    this.password = password;
  }

  public Connection connect() throws SQLException {
    return DriverManager.getConnection(url, user, password);
  }
}

3) Consulta con PreparedStatement

String sql = "SELECT id, name FROM birds WHERE id = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();

4) Mapear ResultSet a objeto

Bird bird = null;
if (rs.next()) {
  bird = new Bird(rs.getInt("id"), rs.getString("name"));
}

5) Cerrar recursos (importante)

Usa try-with-resources para cerrar automáticamente:

try (PreparedStatement ps = conn.prepareStatement(sql)) {
  ps.setInt(1, id);
  try (ResultSet rs = ps.executeQuery()) {
    // leer rs
  }
}

6) Errores típicos

  • URL incorrecta (host/puerto/db).
  • Driver no incluido o versión incompatible.
  • Problemas de permisos del usuario SQL.
  • No cerrar conexiones (fugas).