Назад к вопросам
СБЕР дейвайсы
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 — для вызова процедур базы данных.