Назад к вопросам
Middle
70
questionbank
Какие существуют виды Statement в JDBC?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В JDBC существуют три основных вида Statement:
-
Statement:- Подходит для выполнения статических SQL-запросов без параметров.
- Не кэширует план выполнения запроса, что может снижать производительность при повторном выполнении.
- Уязвим к SQL-инъекциям, так как значения вставляются непосредственно в строку запроса.
-
PreparedStatement:- Предназначен для выполнения параметризованных SQL-запросов.
- Параметры устанавливаются с помощью методов
setXXX(). - Кэширует план выполнения запроса, что повышает производительность при многократных вызовах с разными параметрами.
- Безопасен от SQL-инъекций, так как параметры автоматически экранируются.
-
CallableStatement:- Используется для вызова хранимых процедур и функций в базе данных.
- Поддерживает входные, выходные и входные/выходные параметры.
- Параметры устанавливаются и регистрируются с помощью методов
setXXX()иregisterOutParameter().
Пример использования PreparedStatement:
// Подключение к базе данных (предполагается, что соединение "conn" установлено)
String sql = "SELECT name, age FROM users WHERE id = ?";
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setInt(1, 101); // Установка параметра для WHERE id = ?
try (ResultSet rs = pstmt.executeQuery()) {
while (rs.next()) {
System.out.println("Name: " + rs.getString("name") + ", Age: " + rs.getInt("age"));
}
}
} catch (SQLException e) {
e.printStackTrace();
}