Filtrando e Ordenando Dados

Consultando um banco de dados PostgreSQL em Java

Miller Trujillo

Staff Software Engineer

Por que filtrar e ordenar?

  • A maioria dos aplicativos não mostra todos os registros
  • Precisa restringir os resultados
  • Organizar dados de forma significativa
  • Mostrar partes gerenciáveis

$$

$$

$$

$$

  • WHERE, ORDER BY, LIMIT, OFFSET

Uma livraria online

Consultando um banco de dados PostgreSQL em Java

Filtrando com WHERE

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

pstmt.setInt(1, 2000); ResultSet rs = pstmt.executeQuery();
  • Use o placeholder ? e vincule com setInt()
  • Código Java permanece o mesmo, só o SQL muda
Consultando um banco de dados PostgreSQL em Java

Podemos filtrar em Java?

  • Filtragem no nível do banco de dados:
    • Reduz dados transferidos ✅
    • Evita congestionamento de rede ✅
    • Melhora o desempenho ✅
  • Exceção: lógica complexa (APIs externas, modelos de IA) 💡

Analogia de pedido de comida

Consultando um banco de dados PostgreSQL em Java

Ordenando com 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();
// Adicionando comportamento dinâmico
boolean desc = true;
String sql = "SELECT title, publication_year FROM books
WHERE category_id = ? ORDER BY publication_year ";

sql += desc ? "DESC" : "ASC";
  • += adiciona texto à string SQL
  • ?: - operador ternário (if-else compacto)
Consultando um banco de dados PostgreSQL em Java

Paginação com LIMIT e OFFSET

  • LIMIT controla quantas linhas retornar
  • OFFSET pula linhas antes de retornar resultados
  • ORDER BY garante resultados consistentes entre páginas
String sql = "SELECT title FROM books ORDER BY title ASC LIMIT ? OFFSET ?";
PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setInt(1, 10); // LIMIT: 10 livros por página pstmt.setInt(2, 20); // OFFSET: pula as primeiras 20 linhas ResultSet rs = pstmt.executeQuery();
Consultando um banco de dados PostgreSQL em Java

Vamos praticar!

Consultando um banco de dados PostgreSQL em Java

Preparing Video For Download...