CommencezCommencez gratuitement

Trier les données

La fonction de recherche de CityBook Libraries fonctionne bien, mais les utilisateurs souhaitent trier les résultats par année de publication, en ordre ascendant ou descendant. Vous allez générer la requête dynamiquement pour gérer les deux sens de tri.

La classe HikariSetup est déjà configurée pour vous.

Cette activité fait partie du cours

Interroger une base de données PostgreSQL en Java

Voir le cours

Instructions de l’exercice

  • Complétez la requête pour trier le résultat selon publication_year.
  • Adaptez la requête pour trier en ordre ascendant ou descendant selon la variable ascending qui représente l'entrée de l'utilisateur.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

public class Main {
    public static void main(String[] args) throws SQLException {
        HikariDataSource ds = HikariSetup.createDataSource();
        
        boolean ascending = true;
        
        // Order by the publication_year in ascending order
        String query = """
            SELECT *
            FROM books
            WHERE publication_year >= ?
                AND status = 'available'
            ____ ____ ____
            """;
        
        // Sort depending on the ascending parameter
        query += ____ ? "____" : "____";
        
        try (Connection conn = ds.getConnection();
             PreparedStatement pstmt = conn.prepareStatement(query)) {
            pstmt.setInt(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"));
                }
            }
        }
    }
}
Modifier et exécuter le code