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

Java ile PostgreSQL Veritabanına Sorgu Yazma

kursunun bir parçasıdır
Kursu Görüntüle

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ı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

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