CommencerCommencer gratuitement

Trier les données

La recherche des bibliothèques CityBook fonctionne bien, mais les utilisateurs souhaitent trier les résultats par année de publication, en ordre croissant ou décroissant. Vous allez construire la requête dynamiquement pour gérer les deux sens de tri.

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

Cet exercice fait partie du cours

Interroger une base de données PostgreSQL en Java

Afficher le cours

Instructions

  • Complétez la requête pour trier le résultat par publication_year.
  • Étendez la requête pour trier en ordre croissant ou décroissant selon la variable ascending représentant la saisie de l’utilisateur.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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