LoslegenKostenlos starten

Buch-Suchsystem

Die aktuelle Suche von CityBook Libraries unterstützt nur exakte Buchtitel. Sie brauchen eine flexible Suche, mit der Besucher nach Teilstrings im Titel, nach Autorennamen oder nach einer Kombination dieser Kriterien suchen können.

Du erstellst einen dynamischen Query-Builder, der SQL-Abfragen basierend auf den von Nutzern angegebenen Suchkriterien zusammenstellt. Die Klasse HikariSetup ist bereits für dich konfiguriert.

Diese Übung ist Teil des Kurses

<Kurs>Abfragen einer PostgreSQL-Datenbank in Java</Kurs>
Kurs ansehen

Übungsanweisungen

  • Hänge die Titelbedingung an die Abfrage an.
  • Füge der Abfrage AND hinzu, wenn du eine Titelbedingung hinzugefügt hast, sonst WHERE.
  • Vervollständige die Abfrage, um nach dem Titel zu sortieren.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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);
    }
}
Code bearbeiten und ausführen