Назад к вопросам
Junior
129
questionbank
В чем разница между методами execute, executeQuery и executeUpdate?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
executeQuery используется для выполнения SQL-запросов, возвращающих один объект ResultSet (например, SELECT).
executeUpdate используется для выполнения SQL-запросов, изменяющих данные (например, INSERT, UPDATE, DELETE, CREATE TABLE, DROP TABLE). Возвращает целое число, представляющее количество затронутых строк.
execute используется для выполнения любого типа SQL-запроса. Возвращает true, если результатом является ResultSet (запрос SELECT), и false в противном случае. В случае false, чтобы получить количество затронутых строк или результат DDL-операции, необходимо вызвать getUpdateCount().
// Пример использования executeQuery
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users");
while (rs.next()) {
// Обработка результатов
}
// Пример использования executeUpdate
Statement stmt2 = conn.createStatement();
int updatedRows = stmt2.executeUpdate("UPDATE products SET price = price * 1.1 WHERE category = 'Electronics'");
System.out.println("Обновлено строк: " + updatedRows);
// Пример использования execute
Statement stmt3 = conn.createStatement();
boolean isResultSet = stmt3.execute("SELECT COUNT(*) FROM orders");
if (isResultSet) {
ResultSet rs2 = stmt3.getResultSet();
// Обработка ResultSet
} else {
int updateCount = stmt3.getUpdateCount();
System.out.println("Обновлено строк или результат DDL: " + updateCount);
}
| Метод | Назначение | Возвращаемый тип | Типы SQL-запросов |
|---|---|---|---|
execute |
Выполнение любого типа SQL-запроса | boolean |
SELECT, INSERT, UPDATE, DELETE, DDL |
executeQuery |
Выполнение SQL-запросов, возвращающих ResultSet |
ResultSet |
SELECT |
executeUpdate |
Выполнение SQL-запросов, изменяющих данные | int (количество строк) |
INSERT, UPDATE, DELETE, DDL |