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

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

Statement, PreparedStatement и CallableStatement - основные интерфейсы для выполнения SQL-запросов в JDBC.

  1. Statement - простой запрос без параметров. Уязвим к SQL-инъекциям:
java
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users");
  1. PreparedStatement - параметризованный запрос. Защищен от инъекций, кэшируется и быстрее:
java
PreparedStatement pstmt = conn.prepareStatement(
    "SELECT * FROM users WHERE id = ?");
pstmt.setInt(1, userId);
ResultSet rs = pstmt.executeQuery();
  1. CallableStatement - для вызова хранимых процедур:
java
CallableStatement cstmt = conn.prepareCall("{call get_user(?)}");
cstmt.setInt(1, userId);
ResultSet rs = cstmt.executeQuery();

Основные отличия:

  • Безопасность (PreparedStatement защищает от инъекций)
  • Производительность (PreparedStatement кэшируется)
  • Функциональность (CallableStatement для процедур)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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