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
Istruzioni dell'esercizio
- Usa un segnaposto per il parametro del titolo.
- Crea un
PreparedStatementdalla connessione. - Imposta il parametro
titleper 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"));
}
}
}
}
}