Data filteren en sorteren

Query's uitvoeren op een PostgreSQL-database in Java

Miller Trujillo

Staff Software Engineer

Waarom filteren en sorteren?

  • De meeste apps tonen niet alle records
  • Resultaten moeten worden beperkt
  • Data zinvol ordenen
  • Beheersbare stukken tonen

$$

$$

$$

$$

  • WHERE, ORDER BY, LIMIT, OFFSET

Een online boekwinkel

Query's uitvoeren op een PostgreSQL-database in Java

Filteren met WHERE

String sql = "SELECT * FROM books WHERE publication_year > ?";
PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setInt(1, 2000); ResultSet rs = pstmt.executeQuery();
  • Gebruik ? als placeholder en bind met setInt()
  • Java-code blijft hetzelfde, alleen SQL verandert
Query's uitvoeren op een PostgreSQL-database in Java

Kunnen we in Java filteren?

  • Filteren op database-niveau:
    • Vermindert overgedragen data ✅
    • Voorkomt netwerkcongestie ✅
    • Biedt betere prestaties ✅
  • Uitzondering: complexe logica (externe API's, AI-modellen) 💡

Eten bestellen analogie

Query's uitvoeren op een PostgreSQL-database in Java

Sorteren met ORDER BY

String sql = "SELECT title, publication_year FROM books
WHERE category_id = ? ORDER BY publication_year DESC";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 3);
ResultSet rs = pstmt.executeQuery();
// Dynamisch gedrag toevoegen
boolean desc = true;
String sql = "SELECT title, publication_year FROM books
WHERE category_id = ? ORDER BY publication_year ";

sql += desc ? "DESC" : "ASC";
  • += voegt tekst toe aan de SQL-string
  • ?: - ternary operator (compacte if-else)
Query's uitvoeren op een PostgreSQL-database in Java

Paginering met LIMIT en OFFSET

  • LIMIT bepaalt hoeveel rijen worden geretourneerd
  • OFFSET slaat rijen over voor resultaten
  • ORDER BY zorgt voor consistente resultaten over pagina's
String sql = "SELECT title FROM books ORDER BY title ASC LIMIT ? OFFSET ?";
PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setInt(1, 10); // LIMIT: 10 boeken per pagina pstmt.setInt(2, 20); // OFFSET: sla de eerste 20 rijen over ResultSet rs = pstmt.executeQuery();
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...