Prepared Statement
Setelah menemukan kerentanan SQL injection, CityBook Libraries membutuhkan Anda untuk mengamankan fitur pencarian buku. Anda akan beralih dari objek Statement sederhana ke PreparedStatement untuk mencegah serangan injection.
Kelas HikariSetup sudah dikonfigurasi.
Latihan ini adalah bagian dari kursus
Melakukan Query ke Basis Data PostgreSQL di Java
Petunjuk latihan
- Gunakan placeholder untuk parameter title.
- Buat
PreparedStatementdari connection. - Tetapkan parameter
titleuntuk prepared statement.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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"));
}
}
}
}
}