Back to questions
IT One
Junior — Middle
58
В чем отличие между использованием простого Statement и подготовленного PreparedStatement для выполнения SQL-запросов в JDBC?
Companies where asked
R-Style Softlab
Firecode
Answer from AI
sobes.tech AI
Основные отличия между Statement и PreparedStatement в JDBC:
- Statement используется для выполнения простых SQL-запросов без параметров. Запрос формируется как строка и отправляется на выполнение.
- PreparedStatement позволяет создавать параметризованные запросы с плейсхолдерами (например,
?), которые можно безопасно заполнять значениями.
Преимущества PreparedStatement:
- Безопасность: предотвращает SQL-инъекции за счёт правильного экранирования параметров.
- Производительность: запрос компилируется один раз, а затем может выполняться многократно с разными параметрами.
- Удобство: упрощает работу с динамическими данными.
Пример использования PreparedStatement:
String sql = "SELECT * FROM users WHERE id = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setInt(1, 10);
ResultSet rs = ps.executeQuery();
В то время как Statement требует конкатенации строк, что небезопасно и менее эффективно.