Sobes.tech
Назад к вопросам
Junior — Middle
61

Какое отличие между использованием PreparedStatement и CallableStatement при работе с базой данных?

Компании, где спрашивали
СБЕР дейвайсыСБЕР дейвайсы

Ответ от нейросети

sobes.tech AI

Основное отличие между PreparedStatement и CallableStatement в Java при работе с базой данных:

  • PreparedStatement используется для выполнения заранее скомпилированных SQL-запросов (обычно SELECT, INSERT, UPDATE, DELETE). Позволяет безопасно подставлять параметры, предотвращая SQL-инъекции.

  • CallableStatement предназначен для вызова хранимых процедур или функций, определённых в базе данных. Он поддерживает как входные, так и выходные параметры.

Пример использования PreparedStatement:

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

Пример использования CallableStatement:

CallableStatement cs = connection.prepareCall("{call getUserById(?)}");
cs.setInt(1, 10);
ResultSet rs = cs.executeQuery();

Таким образом, PreparedStatement — для обычных параметризованных запросов, CallableStatement — для вызова процедур базы данных.