IniziaInizia gratis

Prepared Statement

Dopo aver individuato la vulnerabilità di SQL injection, CityBook Libraries ha bisogno che tu metta in sicurezza la funzione di ricerca dei libri. Passerai dagli oggetti Statement ai PreparedStatement per prevenire gli attacchi di injection.

La classe HikariSetup è già configurata.

Questo esercizio fa parte del corso

Eseguire query su un database PostgreSQL in Java

Visualizza il corso

Istruzioni dell'esercizio

  • Usa un segnaposto per il parametro del titolo.
  • Crea un PreparedStatement dalla connessione.
  • Imposta il parametro title per il prepared statement.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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"));
                }
            }
        }
    }
}
Modifica ed esegui il codice