始める無料で始める

データのフィルタリング

CityBook Libraries では、ユーザーが出版年を指定して利用可能な本を検索できる機能を実装したいと考えています。ユーザーが年を入力すると、その年以降に出版された利用可能な本がすべて返されます。

ここでは、プリペアドステートメントを使った安全な方法を使用します。HikariSetup クラスはすでに設定済みです。

この演習はコースの一部です

Java で PostgreSQL データベースにクエリを実行する

コースを見る

演習の手順

  • 出版年がプレースホルダーの値以上の本を取得する WHERE 句を記述します
  • status に基づいてフィルタリングし(絞り込み)、'available' の本のみを対象にします
  • プリペアドステートメントに出版年のパラメーターを設定します

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

public class Main {
    public static void main(String[] args) throws SQLException {
        HikariDataSource ds = HikariSetup.createDataSource();
        // Complete the query to filter the data based on the requirements.
        String query = "SELECT * FROM books ____ publication_year >= ____ AND status = '____'";
        try (Connection conn = ds.getConnection();
             PreparedStatement pstmt = conn.prepareStatement(query)) {
            // Set the publication year parameter
            ____.____(1, 2000);
            try (ResultSet rs = pstmt.executeQuery()) {
                while (rs.next()) {
                    System.out.printf("ID: %d, Title: %s (%d)%n", rs.getInt("book_id"), rs.getString("title"), rs.getInt("publication_year"));
                }
            }
        }
    }
}
コードを編集して実行