Kom igångKom igång gratis

Förberedda satser

Efter att ha upptäckt SQL-injektionssårbarheten behöver CityBook Libraries din hjälp med att säkra boksökningsfunktionen. Du ska byta ut enkla Statement-objekt mot PreparedStatement för att förhindra injektionsattacker.

Klassen HikariSetup är redan konfigurerad.

Den här övningen är en del av kursen

Fråga en PostgreSQL-databas i Java

Visa kurs

Övningsinstruktioner

  • Använd en platshållare för titelparametern.
  • Skapa ett PreparedStatement från anslutningen.
  • Ange parametern title för den förberedda satsen.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

public class Main {
    public static void main(String[] args) throws SQLException {
        HikariDataSource ds = HikariSetup.createDataSource();
        // Set the parameter in the query
        String query = "SELECT * FROM books WHERE title = ____";
        // Create the prepared statement
        try (Connection conn = ds.getConnection();
            PreparedStatement pstmt = ____.____(query)) {
            // Set the title parameter
            pstmt.____(____, "Clean Code");
            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"));
                }
            }
        }
    }
}
Redigera och kör kod