Встречается на собеседованиях • сегодня
В чем разница между Statement и PreparedStatement в JDBC
Statement и PreparedStatement — интерфейсы JDBC для выполнения SQL-запросов, но с ключевыми отличиями:
-
Производительность
PreparedStatementкомпилируется один раз и кэшируется, что ускоряет повторные выполнения.Statementкомпилируется каждый раз. -
Безопасность
PreparedStatementзащищает от SQL-инъекций благодаря параметризации. ВStatementпараметры встраиваются напрямую, что рискованно.
- Синтаксис
PreparedStatementиспользует placeholders (?),Statement— конкатенацию строк.
Пример:
java
// Statement (уязвимо к инъекциям)
String sql = "SELECT * FROM users WHERE name = '" + userInput + "'";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);
// PreparedStatement (безопасно)
String sql = "SELECT * FROM users WHERE name = ?";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setString(1, userInput); // параметр подставляется безопасно
ResultSet rs = pstmt.executeQuery();Итог:
PreparedStatement — предпочтительнее для параметризованных запросов, Statement — для динамических DDL-операций (если нет риска инъекций).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы