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