Назад к вопросам
Junior — Middle
65
Чем отличаются методы execute, executeQuery и executeUpdate при работе с базой данных?
Ответ от нейросети
sobes.tech AI
В Java при работе с JDBC:
-
executeQuery(String sql)— используется для выполнения SQL-запросов, которые возвращают данные (обычноSELECT). Возвращает объектResultSet. -
executeUpdate(String sql)— применяется для SQL-команд, которые изменяют данные (например,INSERT,UPDATE,DELETE) или структуру таблиц (CREATE,DROP). Возвращает количество затронутых строк. -
execute(String sql)— универсальный метод, который может выполнять любой SQL-запрос. Возвращаетtrue, если результатом являетсяResultSet, иfalse, если это количество обновленных строк или нет результата. Для получения результата нужно дополнительно вызватьgetResultSet()илиgetUpdateCount().
Пример:
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users");
int rows = stmt.executeUpdate("UPDATE users SET active = 1 WHERE id = 10");
boolean hasResultSet = stmt.execute("SELECT * FROM users");
if (hasResultSet) {
ResultSet rs2 = stmt.getResultSet();
// обработка rs2
} else {
int updateCount = stmt.getUpdateCount();
// обработка updateCount
}