Язык SQL

Выполнение операторов select


Метод Statement. executeQuery поддерживает выполнение любого запроса, возвращающего в качестве результата таблицу. Результат возвращается в виде объекта ResultSet, содержащего набор строк, и связанного объекта ResultMetaData. Чтобы получить информацию обо всех клиентах базы данных BigHit, необходимо выполнить следующий оператор языка Java:

ResultSet result = stmt.executeQuery("selectfrom Customer");

Результат выполнения этого запроса содержит строку для каждого клиента. Каждая строка, в свою очередь, содержит значение для каждого из атрибутов accountld, lastName, firstName, street, city, state, zipcode. Для получения доступа к этим величинам используются методы интерфейса ResultSet. Доступ к строкам может осуществляться поочередно в порядке, предложенном базой данных. В объекте ResultSet имеется курсор, который первоначально пбзиционируется перед первой строкой результата, этот курсор перемещается с помощью вызова метода1 ResultSet.next.

Метод ResultSet.next перемешает ResultSet-курсор к следующей строке. Первый вызов next помещает курсор на первую строку. Метод next возвращает значение true (истинно), если доступ к следующей строке возможен, и false (ложно), если все строки уже обработаны. Невозможно обрабатывать строки в ином порядке или возвратиться к предыдущей строке. Обработка ResultSet подробно описывается 8.5.2.

Если SQL-оператор содержит ошибки, метод executeQuery генерирует исключительную ситуацию SQLException. Сообщение об исключительной ситуации состоит из сообщения об ошибке SQL. Блок обнаружения ошибок (catch), приведенный на 8.5, может служить примером того, как печатается сообщение об ошибке для стандартной ошибки. ,

Все выполняемые методы класса Statement закрывают предыдущий ResultSet перед своим выполнением. Вследствие этого, программа должна завершить обработку одного результирующего множества, прежде чем выполнять следующий запрос. Программа, которой необходимо обрабатывать несколько запросов одновременно, должна, следовательно, создавать несколько операторов, по одному для каждого из параллельно выполняемых запросов. Это может быть реализовано как- в виде нескольких объектов statement, использующих одно подключение к базе данных, так и в виде нескольких объектов Connection, подключенных к различным базам данных.

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