Začněte nyníZačněte zdarma

Prepared Statements

Po odhalení zranitelnosti SQL injection potřebuje CityBook Libraries zabezpečit funkci vyhledávání knih. Přejdeš od jednoduchých objektů Statement na PreparedStatement, čímž injection útokům předejdeš.

Třída HikariSetup je už nakonfigurovaná.

Toto cvičení je součástí kurzu

Dotazování PostgreSQL databáze v Javě

Zobrazit kurz

Pokyny k cvičení

  • Použij zástupný symbol (placeholder) pro parametr title.
  • Z připojení vytvoř PreparedStatement.
  • Nastav parametr title pro prepared statement.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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"));
                }
            }
        }
    }
}
Upravit a spustit kód