BaşlayınÜcretsiz başlayın

Kitap arama sistemi

CityBook Libraries'in mevcut araması yalnızca kitap adlarının birebir eşleşmesini destekliyor. Ziyaretçilerin kısmi başlık, yazar adı veya bu ölçütlerin herhangi bir kombinasyonuyla arama yapabilmesini sağlayan esnek bir arama özelliğine ihtiyaçları var.

Kullanıcıların sağladığı arama ölçütlerine göre SQL sorguları oluşturan dinamik bir sorgu oluşturucu yazacaksın. HikariSetup sınıfı senin için zaten yapılandırıldı.

Bu egzersiz, kursun bir parçasıdır

Java ile PostgreSQL Veritabanına Sorgu Yazma

Kursa Göz Atın

Egzersiz talimatları

  • Başlık koşulunu sorguya ekle.
  • Sorguya, başlık koşulu eklediysen AND, eklemediysen WHERE ekle.
  • Sorguyu başlığa göre sıralayacak şekilde tamamla.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

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);
    }
}
Kodu Düzenle ve Çalıştır