Назад к вопросам
Junior
74
questionbank
В чем разница между методами execute, executeQuery и executeUpdate?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
executeQuery(): Используется для выполнения SQL-операторов, возвращающих одиночный набор результатов (например, операторыSELECT). Возвращает объектResultSet.executeUpdate(): Используется для выполнения SQL-операторов, которые изменяют базу данных и возвращают количество обновленных строк (например,INSERT,UPDATE,DELETE,CREATE TABLE,DROP TABLE). Возвращаетint.execute(): Более универсальный метод. Может выполнять любой тип SQL-оператора. Возвращаетboolean, указывающий, был ли возвращенResultSet. Еслиtrue, результат —ResultSet. Еслиfalse, результат — количество обновленных строк. Для получения actual результата необходимо использоватьgetResultSet()илиgetUpdateCount().
| Метод | Назначение | Возвращаемое значение | Пример использования |
|---|---|---|---|
executeQuery |
Выполнение SELECT |
ResultSet |
Получение данных из таблицы. |
executeUpdate |
Выполнение INSERT, UPDATE, DELETE, DDL |
int (количество измененных строк) |
Добавление, изменение или удаление записей; создание или удаление таблиц. |
execute |
Любой SQL-оператор | boolean (true, если возвращен ResultSet) |
Когда тип оператора неизвестен заранее или оператор может вернуть и данные, и count. |
Пример использования execute():
// Предполагается, что statement уже создан
boolean isResultSet = statement.execute("SELECT * FROM users WHERE id = 1 OR INSERT INTO logs (message) VALUES ('User fetched')");
if (isResultSet) {
// Обработка ResultSet
try (ResultSet rs = statement.getResultSet()) {
while (rs.next()) {
// Чтение данных
}
}
} else {
// Обработка количества обновленных строк
int updateCount = statement.getUpdateCount();
// Обработка updateCount
}