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

Можете объяснить различия между типами Statement в JDBC и их особенности использования?

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

sobes.tech AI

В JDBC есть три основных типа Statement:

  1. Statement — используется для выполнения простых SQL-запросов без параметров. Подходит для статичных запросов, но не безопасен для динамически формируемых с пользовательскими данными (риск SQL-инъекций).

  2. PreparedStatement — предварительно компилирует SQL-запрос с параметрами (заменителями ?). Позволяет безопасно подставлять значения, предотвращая SQL-инъекции, и может быть эффективнее при повторном выполнении одного и того же запроса с разными параметрами.

  3. CallableStatement — предназначен для вызова хранимых процедур в базе данных. Позволяет передавать входные и выходные параметры.

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

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

Вывод: для динамических запросов с параметрами лучше использовать PreparedStatement, для вызова процедур — CallableStatement, а для простых статичных запросов — Statement.