Sobes.tech
Back to questions
Junior — Middle
64

В чем различия между методами execute, executeQuery и executeUpdate в JDBC и в каком случае какой из них следует применять?

Answer from AI

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();
    // обработка
}