Prepared Statements
Після виявлення вразливості до SQL‑ін'єкції CityBook Libraries просить вас захистити функцію пошуку книжок. Ви перейдете від звичайних об'єктів Statement до PreparedStatement, щоб запобігти ін'єкціям.
Клас HikariSetup уже налаштований.
Ця вправа є частиною курсу
Запити до бази даних PostgreSQL у Java
Інструкції до вправи
- Використайте заповнювач для параметра title.
- Створіть
PreparedStatementз підключення. - Задайте параметр
titleдля підготовленого виразу.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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"));
}
}
}
}
}