Systém vyhledávání knih
Současné vyhledávání v knihovnách CityBook podporuje pouze přesné názvy knih. Knihovny potřebují flexibilní funkci, která návštěvníkům umožní hledat podle části názvu, jména autora nebo jejich kombinace.
Vytvoříš dynamický tvůrce dotazů, který sestavuje SQL dotazy na základě vyhledávacích kritérií zadaných uživateli. Třída HikariSetup je už nakonfigurovaná.
Toto cvičení je součástí kurzu
Dotazování PostgreSQL databáze v Javě
Pokyny k cvičení
- Přidej do dotazu podmínku pro název.
- Přidej AND, pokud jsi už přidal/a podmínku pro název, nebo WHERE, pokud ne.
- Dokonči dotaz tak, aby řadil výsledky podle názvu.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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);
}
}