ÎncepețiÎncepe gratuit

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

Vezi cursul

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);
    }
}
Editează și rulează codul