Filtrarea și sortarea datelor

Interogarea unei baze de date PostgreSQL în Java

Miller Trujillo

Staff Software Engineer

De ce filtrăm și sortăm?

  • Majoritatea aplicațiilor nu afișează toate înregistrările
  • Este necesară restrângerea rezultatelor
  • Organizarea datelor în mod relevant
  • Afișarea unor volume gestionabile

$$

$$

$$

$$

  • WHERE, ORDER BY, LIMIT, OFFSET ✨

O librărie online

Interogarea unei baze de date PostgreSQL în Java

Filtrare cu WHERE

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

pstmt.setInt(1, 2000); ResultSet rs = pstmt.executeQuery();
  • Folosiți marcajul ? și legați valoarea cu setInt()
  • Codul Java rămâne același, doar SQL-ul se modifică
Interogarea unei baze de date PostgreSQL în Java

Putem filtra în Java?

  • Filtrarea la nivelul bazei de date:
    • Reduce datele transferate ✅
    • Previne congestionarea rețelei ✅
    • Oferă performanță mai bună ✅
  • Excepție: logică complexă (API-uri externe, modele AI) 💡

Analogia cu comandarea mâncării

Interogarea unei baze de date PostgreSQL în Java

Sortare cu 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();
// Adding dynamic behavior
boolean desc = true;
String sql = "SELECT title, publication_year FROM books
WHERE category_id = ? ORDER BY publication_year ";

sql += desc ? "DESC" : "ASC";
  • += adaugă text la șirul SQL
  • ?: - operator ternar (if-else compact)
Interogarea unei baze de date PostgreSQL în Java

Paginare cu LIMIT și OFFSET

  • LIMIT controlează numărul de rânduri returnate
  • OFFSET omite rânduri înainte de returnarea rezultatelor
  • ORDER BY asigură rezultate consistente între pagini
String sql = "SELECT title FROM books ORDER BY title ASC LIMIT ? OFFSET ?";
PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setInt(1, 10); // LIMIT: 10 books per page pstmt.setInt(2, 20); // OFFSET: skip first 20 rows ResultSet rs = pstmt.executeQuery();
Interogarea unei baze de date PostgreSQL în Java

Să exersăm!

Interogarea unei baze de date PostgreSQL în Java

Preparing Video For Download...