Filtrare e ordinare i dati

Eseguire query su un database PostgreSQL in Java

Miller Trujillo

Staff Software Engineer

Perché filtrare e ordinare?

  • La maggior parte delle app non mostra tutti i record
  • Necessità di restringere i risultati
  • Organizzare i dati in modo significativo
  • Mostrare porzioni gestibili

$$

$$

$$

$$

  • WHERE, ORDER BY, LIMIT, OFFSET

Una libreria online

Eseguire query su un database PostgreSQL in Java

Filtrare con WHERE

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

pstmt.setInt(1, 2000); ResultSet rs = pstmt.executeQuery();
  • Usa il segnaposto ? e associa con setInt()
  • Il codice Java rimane lo stesso, cambia solo l'SQL
Eseguire query su un database PostgreSQL in Java

Possiamo filtrare in Java invece?

  • Filtrare a livello di database:
    • Riduce i dati trasferiti ✅
    • Previene congestione di rete ✅
    • Migliora le prestazioni ✅
  • Eccezione: logica complessa (API esterne, modelli AI) 💡

Analogia con ordinare cibo

Eseguire query su un database PostgreSQL in Java

Ordinare con 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();
// Aggiungere comportamento dinamico
boolean desc = true;
String sql = "SELECT title, publication_year FROM books
WHERE category_id = ? ORDER BY publication_year ";

sql += desc ? "DESC" : "ASC";
  • += aggiunge testo alla stringa SQL
  • ?: - operatore ternario (if-else compatto)
Eseguire query su un database PostgreSQL in Java

Paginazione con LIMIT e OFFSET

  • LIMIT controlla quante righe restituire
  • OFFSET salta righe prima di restituire risultati
  • ORDER BY assicura risultati coerenti tra le pagine
String sql = "SELECT title FROM books ORDER BY title ASC LIMIT ? OFFSET ?";
PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setInt(1, 10); // LIMIT: 10 libri per pagina pstmt.setInt(2, 20); // OFFSET: salta le prime 20 righe ResultSet rs = pstmt.executeQuery();
Eseguire query su un database PostgreSQL in Java

Ayo berlatih!

Eseguire query su un database PostgreSQL in Java

Preparing Video For Download...