Назад к вопросам
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