ComenzarEmpieza gratis

Sistema de búsqueda de libros

La búsqueda actual de CityBook Libraries solo admite títulos exactos. Necesitan una búsqueda flexible que permita a los visitantes buscar por título parcial, nombre del autor o cualquier combinación de estos criterios.

Vas a crear un generador de consultas dinámico que construya consultas SQL según los criterios de búsqueda que proporcionen los usuarios. La clase HikariSetup ya está configurada.

Este ejercicio forma parte del curso

Consultas a una base de datos PostgreSQL en Java

Ver curso

Instrucciones del ejercicio

  • Añade la condición de título a la consulta.
  • Agrega AND si añadiste una condición de título o WHERE si no, a la consulta.
  • Completa la consulta para ordenar por título.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

public class Main {
    public static void main(String[] args) {
        String titleSearch = "first";
        String authorSearch = null;

        StringBuilder sql = new StringBuilder(
                "SELECT b.title, a.first_name AS author " +
                        "FROM books b " +
                        "JOIN book_authors ba ON b.book_id = ba.book_id " +
                        "JOIN authors a ON ba.author_id = a.author_id ");
        boolean hasTitleSearch = false;

        if (titleSearch != null && !titleSearch.isEmpty()) {
            // Append the title condition
            sql.____("WHERE b.title ILIKE ? ");
            hasTitleSearch = true;
        }

        if (authorSearch != null && !authorSearch.isEmpty()) {
            // Add AND if you added title condition or WHERE if not
            sql.append(hasTitleSearch ? "AND " : "____");
            sql.append(" a.first_name ILIKE ? ");
        }

        // Complete the query to sort by title
        sql.append("____ ____ b.title");

        System.out.println(sql);
    }
}
Editar y ejecutar código