ПочатиПочніть безкоштовно

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"));
                }
            }
        }
    }
}
Редагувати та запускати код