Sistem de căutare a cărților
Sistemul de căutare actual al Bibliotecilor CityBook acceptă doar titluri exacte de cărți. Aceștia au nevoie de o funcționalitate de căutare flexibilă, care să le permită vizitatorilor să caute după titlu parțial, după numele autorului sau după orice combinație a acestor criterii.
Vei crea un constructor dinamic de interogări, care construiește interogări SQL pe baza criteriilor de căutare furnizate de utilizatori. Clasa HikariSetup este deja configurată pentru tine.
Acest exercițiu face parte din cursul
Interogarea unei baze de date PostgreSQL în Java
Instrucțiuni pentru exercițiu
- Adaugă condiția pentru titlu la interogare.
- Adaugă AND dacă ai inclus deja o condiție pentru titlu, sau WHERE dacă nu, la interogare.
- Completează interogarea pentru a sorta rezultatele după titlu.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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);
}
}