Язык SQL

Выполнение операторов вставки и обновления


Многие операторы языка SQL не возвращают в качестве результата отдельную таблицу, и поэтому не могут выполняться методом executeQuery. Для выполнения любого оператора, возвращающего число строк, как, например, оператор вставки, обновления или удаления, следует использовать метод executeUpdate. Его также можно использовать для операторов SQL DDL, не возвращающих результатов. Метод executeUpdate возвращает отдельное целое значение, которое представляет собой количество строк, использованных операторами вставки, обновления или включения; это значение всегда равно 0 для операторов, не возвращающих результатов.

Следующий код представляет собой вставку в таблицу клиентов нового клиента Магу Brown.

int rowcount = stmt.executeUpdate("insert into Customer"

+ "(accountld,lastName,firstName)"+

+ "values (1239,’Brown’,'Mary’)");

if (rowcount == 0) //включение не состоялось

Если число строк, возвращаемое методом executeUpdate, не равно 1, это означает, что не удалось правильно произвести вставку. Если возвращаемое значение 0, вставка не состоялась, возможно, из-за нарушения доступа или из-за конфликта первичного ключа. Для данного оператора значение числа строк не может быть больше 1, поскольку SQL-оператором описана единственная строка.

Метод executeUpdate используется для выполнения любых SQL-операторов, не являющихся операторами выборки данных (select), а именно операторов вставки, обновления и удаления, модифицирующих содержимое таблиц. Он также используется для выполнения операторов DDL, модифицирующих определение схемы базы данных. Метод executeUpdate позволяет программе создавать и уничтожать таблицы, модифицировать физическое представление базы данных путем добавления и удаления индексов и производить любые другие модификации схемы. Выполнение операторов DDL возвращает в качестве значения 0. Ошибка в операторе DDL вызовет переход к исключительному состоянию. Следовательно, если выполнение DDL-оператора не привело к исключительному состоянию, значит, оператор выполнился успешно.

Комментарии закрыты