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

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

PreparedStatement используется для выполнения параметризованных SQL-запросов, защищая от SQL-инъекций. Он компилируется один раз и может выполняться многократно с разными параметрами. Пример:

java
PreparedStatement ps = connection.prepareStatement("SELECT * FROM users WHERE id = ?");
ps.setInt(1, userId);
ResultSet rs = ps.executeQuery();

CallableStatement предназначен для вызова хранимых процедур в БД. Поддерживает IN, OUT и INOUT параметры. Пример:

java
CallableStatement cs = connection.prepareCall("{call get_user_data(?, ?)}");
cs.setInt(1, userId);
cs.registerOutParameter(2, Types.VARCHAR);
cs.execute();
String userName = cs.getString(2);

Ключевые отличия:

  1. PreparedStatement - для SQL-запросов, CallableStatement - для хранимых процедур
  2. CallableStatement поддерживает выходные параметры
  3. Синтаксис вызова отличается ({call ...} vs обычный SQL)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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