Встречается на собеседованиях • сегодня

В чем разница между Statement и PreparedStatement

Statement и PreparedStatement — интерфейсы для выполнения SQL-запросов в JDBC. Основные различия:

  1. Компиляция
    • Statement компилируется каждый раз при выполнении.
    • PreparedStatement компилируется один раз и может выполняться многократно с разными параметрами.
  1. Безопасность

    • Statement уязвим к SQL-инъекциям, т.к. параметры вставляются напрямую в запрос.
    • PreparedStatement экранирует параметры автоматически, предотвращая инъекции.
  2. Производительность

    • PreparedStatement быстрее для повторяющихся запросов, т.к. использует кэширование.

Пример:

java
// Statement (небезопасно)
Statement stmt = conn.createStatement();
stmt.executeQuery("SELECT * FROM users WHERE id = " + userInput);

// PreparedStatement (безопасно)
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM users WHERE id = ?");
pstmt.setInt(1, userId);
pstmt.executeQuery();
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы