Sobes.tech
Junior — Middle

Pouvez-vous expliquer les différences entre les types de Statement en JDBC et leurs particularités d'utilisation?

sobes.tech IA

Réponse de l'IA

В 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.