Aan de slagGa gratis aan de slag

De data sorteren

De zoekfunctie van CityBook Libraries werkt goed, maar gebruikers willen resultaten sorteren op publicatiejaar, oplopend of aflopend. Je bouwt de query dynamisch op om beide sorteer­richtingen te ondersteunen.

De klasse HikariSetup is al voor je geconfigureerd.

Deze oefening maakt deel uit van de cursus

Query's uitvoeren op een PostgreSQL-database in Java

Cursus bekijken

Oefeninstructies

  • Maak de query af om het resultaat te sorteren op publication_year.
  • Breid de query uit om oplopend of aflopend te sorteren afhankelijk van de variabele ascending, die de invoer van de gebruiker weergeeft.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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"));
                }
            }
        }
    }
}
Code bewerken en uitvoeren