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

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

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

  1. Безопасность
    PreparedStatement защищает от SQL-инъекций, так как параметры передаются через setXxx(), а не встраиваются в строку.
    Statement уязвим, так как запрос формируется конкатенацией строк.
  1. Производительность
    PreparedStatement компилируется один раз и кэшируется, что ускоряет повторные выполнения.
    Statement компилируется каждый раз.

  2. Читаемость
    PreparedStatement удобнее для запросов с параметрами.

Пример:

java
// Statement (небезопасно)
String sql = "SELECT * FROM users WHERE id = " + userId;
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);

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

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

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

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