Prepared Statements
SQL enjeksiyonu güvenlik açığını keşfettikten sonra, CityBook Libraries kitap arama özelliğini güvenceye almanı istiyor. Enjeksiyon saldırılarını önlemek için basit Statement nesnelerinden PreparedStatement kullanımına geçeceksin.
HikariSetup sınıfı zaten yapılandırıldı.
Bu egzersiz, kursun bir parçasıdır
Java ile PostgreSQL Veritabanına Sorgu Yazma
Egzersiz talimatları
- Başlık parametresi için bir yer tutucu kullan.
- Bağlantıdan bir
PreparedStatementoluştur. - Hazırlanmış ifade için
titleparametresini ayarla.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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"));
}
}
}
}
}