Aan de slagBegin gratis

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

Bekijk cursus

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.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan 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