Bắt đầu ngayBắt đầu miễn phí

Hệ thống tìm kiếm sách

Tìm kiếm hiện tại của CityBook Libraries chỉ hỗ trợ tiêu đề sách khớp chính xác. Họ cần một tính năng tìm kiếm linh hoạt cho phép khách truy cập tìm theo một phần tiêu đề, tên tác giả hoặc bất kỳ kết hợp nào của các tiêu chí này.

Bạn sẽ tạo một bộ dựng truy vấn động để xây dựng các truy vấn SQL dựa trên tiêu chí tìm kiếm do người dùng cung cấp. Lớp HikariSetup đã được cấu hình sẵn cho bạn.

Bài tập này là một phần của khóa học

Truy vấn cơ sở dữ liệu PostgreSQL trong Java

Xem khóa học

Hướng dẫn bài tập

  • Nối điều kiện về tiêu đề vào truy vấn.
  • Thêm AND nếu bạn đã thêm điều kiện tiêu đề, hoặc WHERE nếu chưa, vào truy vấn.
  • Hoàn thiện truy vấn để sắp xếp theo tiêu đề.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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);
    }
}
Chỉnh sửa và Chạy Mã