Inizia subitoInizia 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 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 interattivo pratico

Prova questo esercizio completando questo 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