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
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
ascendingqui 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"));
}
}
}
}
}