Beheer van databaseverbindingen

Query's uitvoeren op een PostgreSQL-database in Java

Miller Trujillo

Staff Software Engineer

Waarom verbindingen beheren?

$$

  • Elke verbinding opent een netwerkverbinding
  • Vereist authenticatie en middelen
  • Niet-gesloten verbindingen lekken middelen
  • Nieuwe verbindingen kunnen falen

Een diagram dat meerdere databaseverbindingen toont, met enkele gemarkeerd als "zombie"-verbindingen die open maar ongebruikt zijn

Query's uitvoeren op een PostgreSQL-database in 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("Totaal boeken: " + rs.getInt(1)); } }
  • Verbindingen worden automatisch gesloten
Query's uitvoeren op een PostgreSQL-database in Java

Verbindingenpooling

  • Nieuwe verbindingen herhalen dure setup
  • Pooling hergebruikt bestaande verbindingen
  • Verbindingen keren terug naar pool na gebruik

Een taxistandplaats analogie

Een diagram dat een verbindingenpool toont met meerdere vooraf ingestelde verbindingen, met pijlen die verbindingen tonen die worden geleend en teruggegeven

Query's uitvoeren op een PostgreSQL-database in Java

HikariCP voorbeeld

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("Verbonden met HikariCP!"); }
Query's uitvoeren op een PostgreSQL-database in Java

HikariCP Console Logging

[main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starten...
[main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - 
    Verbinding toegevoegd org.postgresql.jdbc.PgConnection@ID
[main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start voltooid.
Query's uitvoeren op een PostgreSQL-database in Java

Laten we oefenen!

Query's uitvoeren op een PostgreSQL-database in Java

Preparing Video For Download...