Gestión de Conexiones de Base de Datos

Consultas a una base de datos PostgreSQL en Java

Miller Trujillo

Staff Software Engineer

¿Por qué importa la gestión de conexiones?

$$

  • Cada conexión abre un socket de red
  • Requiere autenticación y recursos
  • Conexiones no cerradas causan fugas
  • Nuevas conexiones pueden fallar

Un diagrama que muestra múltiples conexiones de base de datos acumulándose, con algunas marcadas como conexiones "zombie" que están abiertas pero no usadas

Consultas a una base de datos PostgreSQL en Java

try-with-resources

String sql = "SELECT COUNT(*) FROM books";


try (Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql)) {
if (rs.next()) { System.out.println("Total de libros: " + rs.getInt(1)); } }
  • Las conexiones se cierran automáticamente
Consultas a una base de datos PostgreSQL en Java

Pooling de conexiones

  • Conexiones nuevas repiten configuración costosa
  • Pooling reutiliza conexiones existentes
  • Conexiones vuelven al pool al terminar

Analogía de una parada de taxis

Un diagrama que muestra un pool de conexiones con múltiples conexiones preestablecidas, con flechas mostrando conexiones siendo tomadas y devueltas

Consultas a una base de datos PostgreSQL en Java

Ejemplo de HikariCP

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;


HikariConfig config = new HikariConfig(); config.setJdbcUrl("jdbc:postgresql://localhost:5432/library"); config.setUsername("postgres"); config.setPassword("secret");
HikariDataSource ds = new HikariDataSource(config);
try (Connection conn = ds.getConnection()) { System.out.println("¡Conectado con HikariCP!"); }
Consultas a una base de datos PostgreSQL en Java

Registro de consola de HikariCP

[main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
[main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - 
    Added connection org.postgresql.jdbc.PgConnection@ID
[main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
Consultas a una base de datos PostgreSQL en Java

¡Vamos a practicar!

Consultas a una base de datos PostgreSQL en Java

Preparing Video For Download...