Filtrar y Ordenar Datos

Consultas a una base de datos PostgreSQL en Java

Miller Trujillo

Staff Software Engineer

¿Por qué filtrar y ordenar?

  • La mayoría de las aplicaciones no muestran todos los registros
  • Necesitan reducir resultados
  • Organizar datos de forma significativa
  • Mostrar porciones manejables

$$

$$

$$

$$

  • WHERE, ORDER BY, LIMIT, OFFSET

Una librería en línea

Consultas a una base de datos PostgreSQL en Java

Filtrar con WHERE

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

pstmt.setInt(1, 2000); ResultSet rs = pstmt.executeQuery();
  • Usa el marcador ? y vincula con setInt()
  • El código Java sigue igual, solo cambia el SQL
Consultas a una base de datos PostgreSQL en Java

¿Podemos filtrar en Java?

  • Filtrar a nivel de base de datos:
    • Reduce datos transferidos ✅
    • Evita congestión de red ✅
    • Mejora el rendimiento ✅
  • Excepción: lógica compleja (APIs externas, modelos AI) 💡

Analogía de ordenar comida

Consultas a una base de datos PostgreSQL en Java

Ordenar 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();
// Añadiendo comportamiento dinámico
boolean desc = true;
String sql = "SELECT title, publication_year FROM books
WHERE category_id = ? ORDER BY publication_year ";

sql += desc ? "DESC" : "ASC";
  • += añade texto a la cadena SQL
  • ?: - operador ternario (if-else compacto)
Consultas a una base de datos PostgreSQL en Java

Paginación con LIMIT y OFFSET

  • LIMIT controla cuántas filas devolver
  • OFFSET omite filas antes de devolver resultados
  • ORDER BY asegura 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 libros por página pstmt.setInt(2, 20); // OFFSET: omitir las primeras 20 filas ResultSet rs = pstmt.executeQuery();
Consultas a una base de datos PostgreSQL en Java

¡Vamos a practicar!

Consultas a una base de datos PostgreSQL en Java

Preparing Video For Download...