Назад к вопросам
Junior — Middle
65
В чем различия между методами execute, executeQuery и executeUpdate в JDBC и в каком случае какой из них следует применять?
Ответ от нейросети
sobes.tech AI
В JDBC методы execute, executeQuery и executeUpdate имеют разные назначения:
-
executeQuery() — используется для выполнения SQL-запросов, которые возвращают результат в виде набора данных (SELECT). Возвращает объект ResultSet.
-
executeUpdate() — применяется для выполнения SQL-команд, которые изменяют данные или структуру базы (INSERT, UPDATE, DELETE, DDL). Возвращает количество затронутых строк.
-
execute() — универсальный метод, который может выполнять любой SQL-запрос. Возвращает boolean: true, если результатом является ResultSet, false — если обновление.
Когда использовать:
- Для выборки данных — executeQuery.
- Для изменения данных или структуры — executeUpdate.
- Если заранее неизвестен тип запроса или он может быть разным — execute.
Пример:
String sql = "SELECT * FROM users";
ResultSet rs = statement.executeQuery(sql);
String updateSql = "UPDATE users SET name='John' WHERE id=1";
int rows = statement.executeUpdate(updateSql);
boolean hasResultSet = statement.execute(sql);
if (hasResultSet) {
ResultSet rs2 = statement.getResultSet();
// обработка
}