बुक सर्च सिस्टम
CityBook Libraries की मौजूदा सर्च केवल एक्सैक्ट बुक टाइटल को सपोर्ट करती है. उन्हें एक फ्लेक्सिबल सर्च फीचर चाहिए, जिसमें विज़िटर्स पार्टियल टाइटल, ऑथर नेम, या इन मानदंडों के किसी भी कॉम्बिनेशन से सर्च कर सकें.
आप एक डायनेमिक क्वेरी बिल्डर बनाएँगे जो यूज़र्स द्वारा दिए गए सर्च क्राइटेरिया के आधार पर SQL क्वेरी तैयार करेगा. HikariSetup क्लास आपके लिए पहले से कॉन्फ़िगर है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Java में PostgreSQL डेटाबेस को क्वेरी करना
अभ्यास निर्देश
- क्वेरी में टाइटल से जुड़ी कंडीशन को जोड़ें.
- क्वेरी में, अगर आपने टाइटल कंडीशन जोड़ी है तो AND जोड़ें, वरना WHERE जोड़ें.
- क्वेरी को टाइटल के अनुसार सॉर्ट करने के लिए पूरा करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
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);
}
}