Datenbankverbindungen verwalten

Abfragen einer PostgreSQL-Datenbank in Java

Miller Trujillo

Staff Software Engineer

Warum ist Verbindungsmanagement wichtig?

$$

  • Jede Verbindung öffnet einen Netzwerksocket
  • Erfordert Authentifizierung und Ressourcen
  • Nicht geschlossene Verbindungen führen zu Lecks
  • Neue Verbindungen können fehlschlagen

Ein Diagramm, das mehrere Datenbankverbindungen zeigt, von denen einige als "Zombie"-Verbindungen markiert sind, die offen, aber ungenutzt sind

Abfragen einer PostgreSQL-Datenbank 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("Gesamtanzahl Bücher: " + rs.getInt(1)); } }
  • Verbindungen werden automatisch geschlossen
Abfragen einer PostgreSQL-Datenbank in Java

Verbindungspooling

  • Neue Verbindungen wiederholen teure Einrichtung
  • Pooling nutzt bestehende Verbindungen
  • Verbindungen kehren nach Nutzung in den Pool zurück

Eine Taxistand-Analogie

Ein Diagramm, das einen Verbindungspool mit mehreren vorab eingerichteten Verbindungen zeigt, mit Pfeilen, die das Ausleihen und Zurückgeben von Verbindungen darstellen

Abfragen einer PostgreSQL-Datenbank in Java

HikariCP Beispiel

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("Verbunden mit HikariCP!"); }
Abfragen einer PostgreSQL-Datenbank in Java

HikariCP Konsolenprotokollierung

[main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Startet...
[main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - 
    Verbindung hinzugefügt org.postgresql.jdbc.PgConnection@ID
[main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start abgeschlossen.
Abfragen einer PostgreSQL-Datenbank in Java

Lass uns üben!

Abfragen einer PostgreSQL-Datenbank in Java

Preparing Video For Download...