Executeupdate java что возвращает

Выполнение запросов

Все SQL-запросы можно условно разделить на две группы:

  • Получение данных — к ним относится оператор SELECT .
  • Изменение данных — к ним относятся операторы INSERT , UPDATE и DELETE .

Для первой группы используется уже знакомый нам метод интерфейса Statement — executeQuery() . В принципе для начала этого метода вполне достаточно. Он покрывает очень большой процент запросов, которые вам придется использовать на реальной работе.

Позже мы познакомимся с дополнительными возможностями, но на данный момент советую запомнить — если ты хочешь просто получить данные из таблицы, то метод executeQuery() в подавляющем большинстве случаев будет самым правильным выбором.

Для второй группы запросов нужно использовать другой метод интерфейса Statement — executeUpdate() . В отличии от метода executeQuery() , который возвращает ResultSet, этот метод возвращает целое число, которое говорит сколько строк в таблице было изменено при исполнении вашего запроса .

Например, ты можешь оператором DELETE FROM employee удалить все строки (посему будьте очень аккуратны). В этом случае метод executeUpdate() вернет количество удаленных строк. В некоторых ситуациях знание о количестве измененных строк бывает удобным для построения алгоритмов работы с данными.

В принципе с этим вопросов можно закончить — главное мы уже увидели. Для выборки данных — executeQuery() . Для изменения данных — executeUpdate() .

Получим количество пользователей в таблице user с помощью методa executeQuery() :

 ResultSet results = statement.executeQuery("SELECT Count(*) FROM user"); results.next(); int count = results.getInt(1); 

executeUpdate()

Метод executeUpdate() используется тогда, когда твой запрос что-то меняет в таблице. Это может быть что угодно:

  • оператор UPDATE
  • оператор INSERT
  • оператор DELETE
  • оператор CALL PROCEDURE

Этот метод возвращает количество измененный (или удаленных) строк.

Давай напишем запрос, который увеличит зарплату всех наших сотрудников на 1000 рублей.

 int rowsCount = statement.executeUpdate("UPDATE employee SET salary = salary+1000"); 

После того как я выполнил этот код, на своей таблице он вернул число 6. В моей таблице было 6 строк. Значит все строки были изменены.

execute ()

Иногда в твоей жизни могут возникнуть ситуации, когда ты точно не знаешь, какой запрос тебе приходится исполнять — выборка или изменение данных. На этот случай создатели JDBC добавили в него еще один универсальный метод — execute() .

Этот метод можно использовать вместо executeQuery() и executeUpdate() методов. А помнишь, чем эти методы отличались? Правильно. Типом результата. Поэтому создатели JDBC придумали такое решение.

Метод execute() возвращает boolean. Если это значение равно true , то значит выполнялся запрос на получение данных, и тебе нужно вызвать метод getResultSet() , чтобы получить данные. Пример:

 boolean hasResults = statement.execute("SELECT Count(*) FROM user"); if ( hasResults )

Если это значение равно false , то значит выполнялся запрос на изменение данных, и тебе нужно вызвать метод getUpdateCount() , чтобы получить количество измененных строк. Пример:

 boolean hasResults = statement.execute("UPDATE employee SET salary = salary+1000"); if ( !hasResults )

Давай напишем метод, который выводит на экран результат запроса:

 public void executeAndPrintSQLQuery(String sqlQuery) < boolean hasResults = statement.execute(sqlQuery); if ( hasResults ) < ResultSet results = statement.getResultSet(); System.out.println(“Строки вашего запроса ниже: ”); while (results.next()) < Integer String name = results.getString(2); System.out.println(results.getRow() + ". " + id + "\t"+ name); >> else < int count = statement.getUpdateCount(); System.out.println(“Количество именных строк: ” + count); >> 

Вот так метод execute() обычно применяется на практике.

Источник

Читайте также:  Socket listening in java
Оцените статью