Sistem pencarian buku
Pencarian di CityBook Libraries saat ini hanya mendukung judul buku yang persis sama. Mereka memerlukan fitur pencarian yang lebih fleksibel yang memungkinkan pengunjung mencari berdasarkan sebagian judul, nama penulis, atau kombinasi dari kriteria tersebut.
Anda akan membuat pembangun kueri dinamis yang menyusun pernyataan SQL berdasarkan kriteria pencarian yang diberikan pengguna. Kelas HikariSetup sudah dikonfigurasi untuk Anda.
Latihan ini adalah bagian dari kursus
Melakukan Query ke Basis Data PostgreSQL di Java
Petunjuk latihan
- Tambahkan kondisi judul ke kueri.
- Tambahkan AND jika Anda menambahkan kondisi judul atau WHERE jika tidak, ke kueri.
- Lengkapi kueri untuk mengurutkan berdasarkan judul.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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);
}
}