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
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);
}
}