Интерфейс доступа к базам данных





Скачать 291.48 Kb.
НазваниеИнтерфейс доступа к базам данных
страница3/4
Дата публикации24.08.2014
Размер291.48 Kb.
ТипДокументы
100-bal.ru > Информатика > Документы
1   2   3   4

Обработка SQL исключительных ситуаций


Пакет java.sql обеспечивает класс SQLException , который является производным от класса java.lang.Exception. SQLException вызывается различными методами JDBC API и позволяет Вам определить причину ошибок, которые появляются, когда осуществляется взаимодействие Java-приложения с базой данных. Вы можете перехватить SQLException в Java-приложении, используя блок try-catch обработки исключительных ситуаций. Класс SQLException предоставляет следующую информацию об ошибках:

  • сообщение об ошибке: это строка, в которой описана ошибка.

  • Код ошибки: это целочисленное значение, которое ассоциировано с ошибкой. Код ошибки специфицирован производителем и зависит от используемой базы данных.

  • SQL-состояние: это X/OPEN код ошибки, который идентифицирует ошибку. Различные производители поставляют различные сообщения об ошибках, чтобы определить одну и ту же ошибку. В результате, какая-либо ошибка может давать различные сообщение об ошибках. X/OPEN код ошибки это стандартное сообщение, ассоциированное с ошибкой, которое может идентифицировать ошибку для многочисленных баз данных.

Класс SQLException содержит различные методы, которые предоставляют информацию об ошибках. Методы класса SQLException:

  • int getErrorCode():возвращает код ошибки, ассоциированной с появившейся ошибкой.

  • String getSQLState(): возвращает X/Open код ошибки.

  • SQLException getNextException(): возвращает следующее исключение в последовательности исключительных ситуаций.

Вы можете использовать следующий фрагмент кода, чтобы перехватить SQLException:

try

{

String str = "DELETE FROM authors WHERE au_id='998-72-3568'";

Statement stmt = con.createStatement();

int count = stmt.executeUpdate(str);

}

catch(SQLException sqlExceptionObject)

{

System.out.println("Display Error Code");

System.out.println("SQL Exception"+ sqlExceptionObject.getErrorCode());

}

В этом фрагменте кода, если оператор DELETE во время выполнения вызывает SQLException , то эта ситуация обрабатывается, используя блок try-catch. sqlExceptionObject это объект класса SQLException и он используется активизацией метода getErrorCode().

Доступ к результирующему набору данных

Когда Вы выполняете запрос, чтобы извлечь данные из таблицы, используя Java-приложение, выходные данные запроса сохраняются в объекте ResultSet в табличном формате. Объект ResultSet поддерживает указатель (курсор), который дает Вам возможность перемещаться по строкам, сохраняемым в объекте ResultSet. По умолчанию, объект ResultSet поддерживает курсор, который перемещается только в прямом направлении. В результате, он перемещается от первой строки до последней строки в ResultSet. Вы не можете обновить умолчание объекта ResultSet. Курсор в объекте ResultSet object первоначально установлен перед первой строкой.

Типы результирующего набора данных

Вы можете создать множество типов объектов ResultSet , чтобы хранить выходные данные, возвращаемые базой данных после выполнения операторов SQL. Существуют следующие типы объектов ResultSet:

  • только для чтения: позволяет Вам только читать строки объекта ResultSet.

  • только вперед: позволяет Вам передвигать курсор результирующего набора данных от первой до последней строки только в прямом направлении.

  • прокручиваемый: позволяет Вам перемещать курсор результирующего набора данных в прямом или обратном направлении по результирующему набора данныху.

  • обновляемый: позволяет Вам обновлять строки результирующего набора данных, извлеченные из таблицы базы данных.

Вы можете специфицировать тип объекта ResultSet, используя метод createStatement() интерфейса Connection . Метод createStatement() принимает поля ResultSet как параметры, чтобы создать различные типы объектов ResultSet. Следующая таблица перечисляет различные поля интерфейса ResultSet, которые Вы можете использовать, чтобы создать различные типы результирующего набора данных:

Поля результирующего набора данных

Описание

TYPE_SCROLL_SENTITIVE

Специфицирует, что курсор объекта ResultSet прокручиваемый и отражаются изменения в данных, сделанные другими пользователями.

Поля результирующего набора данных

Описание

TYPE_SCROLL_INSENSITIVE

Специфицирует, что курсор объекта ResultSet object прокручиваемый и не отражаются изменения в данных, сделанные другими пользователями.

TYPE_FORWARD_ONLY

Специфицирует, что курсор объекта ResultSet перемещается только в прямом направлении от первой строки до последней строки.

Следующая таблица списков различных полей интерфейса ResultSet, которые Вы можете использовать, чтобы специфицировать различные параллельные режимы работы с результирующим набором данных:

Поля результирующего набора данных

Описание

CONCUR_READ_ONLY

Специфицирует параллельный режим работы, который не позволяет Вам обновлять объект ResultSet.

CONCUR_UPDATABLE

Специфицирует параллельный режим работы, который позволяет Вам обновлять объект ResultSet.

Следующая таблица списков различных полей интерфейса ResultSet, которые Вы можете использовать, чтобы специфицировать различные состояния курсора результирующего набора данных:

Поля результирующего набора данных

Описание Specifies

HOLD_CURSORS_OVER_COMMIT

Специфицирует, что объект ResultSet не должен быть закрыт, после того, как данное зафиксировано в базе данных.

CLOSE_CURSORS_AT_COMMIT

Специфицирует, что объект ResultSet не должен быть закрыт, после того, как данное зафиксировано в базе данных.

Метод createStatement() это перезагружаемый метод, который имеет три прототипа. Следующие три перезагружаемые формы метода createStatement():

  • Утверждение createStatement(): не принимает каких-либо параметров. Этот метод создает по умолчанию объект ResultSet, который позволяет только скроллинг вперед.

  • Утверждение createStatement(int, int): принимает два параметра. Первый параметр указывает тип ResultSet, который определяет, действительно ли курсор результирующего набора данных может перемещаться назад. Второй параметр указывает режим параллелизма для результирующего набора данных, который определяет, могут ли данные результирующего набора данных быть обновлены. Этот метод создает объект ResultSet заданного типа и параллелизма.

  • Утверждение createStatement(int, int, int): принимает три параметра. Дополнительно к типу ResultSet и режиму параллелизма, этот метод принимает третий параметр. Этот параметр указывает, действительно ли результирующий набор данных закрыт после фиксирования данных в базе данных. Этот метод создает объект ResultSet с заданным типом, параллелизмом и состоянием.

Методы интерфейса ResultSet

Интерфейс ResultSet содержит различные методы, которые позволяют Вам перемещать курсор по результирующему набору данных. Следующая таблица перечисляет методы интерфейса ResultSet:

Метод

Описание

boolean first()

Перемещает курсор результирующего набора данных к первой строке результирующего набора данных.

boolean isFirst()

Определяет, указывает ли курсор результирующего набора данных на первую строку результирующего набора данных.

boolean beforeFirst()

Перемещает курсор результирующего набора данных перед первой строкой результирующего набора данных.

Метод

Описание

boolean last()

Перемещает курсор результирующего набора данных к последней строке результирующего набора данных.

boolean isLast()

Определяет, установлен ли курсор результирующего набора данных на последнюю строку результирующего набора данных.

boolean afterLast()

Перемещает курсор результирующего набора данных после последней строки результирующего набора данных.

boolean isAfterLast()

Определяет, установлен ли курсор результирующего набора данных после последней строки результирующего набора данных.

boolean previous()

Перемещает курсор результирующего набора данных на предыдущую строку результирующего набора данных.

boolean absolute(int i)

Перемещает курсор результирующего набора данных к строке, номер которой специфицирован как параметр.

boolean relative(int i)

Перемещает курсор результирующего набора данных вперед или назад, относительно строки, номер которой специфицирован как параметр. Этот метод принимает или положительные или отрицательные значения как параметр.

Вы можете создать результирующий набор данных со скроллингом, которое обеспечивает скроллинг вперед или назад по строкам результирующего набора данных. Вы можете использовать следующий фрагмент кода, чтобы создать результирующий набор данных только для чтения со скроллингом:

Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

ResultSet rs=stmt.executeQuery ("SELECT * FROM authors");

Вы можете определять местоположение курсора результирующего набора данных, используя методы интерфейса ResultSet . Вы можете использовать следующий фрагмент кода, чтобы определить находится ли курсор результирующего набора данных перед первой строкой в результирующем наборе данных:

if(rs.isBeforeFirst()==true)

System.out.println("Result set cursor is before the first row in the result set");

В данном коде, rs это объект ResultSet , который вызывает метод isBeforeFirst().

Вы можете перемещать отдельные строки, такие как первую или последнию в результирующем наборе данных, используя методы интерфейса ResultSet. Вы можете использовать следующий фрагмент кода, чтобы переместить курсор результирующего набора данных к первой строке результирующего набора данных:

if(rs.first()==true)

System.out.println(rs.getString(1) + ", " + rs.getString(2)+ ", " + rs.getString(3));

В этом фрагменте кода, rs это объект the ResultSet , который вызывает метод first().

Точно также Вы можете перемещать курсор результирующего набора данных к последней строке результирующего набора данных, используя метод last().

Если Вы хотите переместить какую-либо отдельную строку в результирующий набор данных, вы можете использовать метод absolute(). Например, курсор результирующего набора данных позиционирован на первой строке, и вы хотите осуществить скроллинг четвертой строки, Вы должны ввести 4 как параметр, когда Вы вызываете метод absolute(), как показано в следующем фрагменте кода:

System.out.println("Using absolute() method");

rs.absolute(4);

int rowcount = rs.getRow();

System.out.println("rowNum should be 4 " + rowcount);

Вы можете передавать отрицательное значение методу absolute() , чтобы установить курсор выше или ниже последней строки в результирующем наборе данных. Например, чтобы установить курсор на строку выше последней, специфицируйте rs.absolute(-2).

JDBC позволяет Вам создать обновляемый результирующий набор данных, которое позволяет Вам модифицировать строки результирующего набора данных. Следующая таблица перечисляет некоторые методы, используемые с обновляемым результирующим набором данных:

Метод

Описание

void updateRow()

Обновляет строку текущего объекта ResultSet и базовую таблицу базы данных.

void insertRow()

Обновляет строку текущего объекта ResultSet и базовую таблицу базы данных.

Метод

Описание

void updateString()

Обновляет специфицированный столбец, заданный строковым значением.

void updateInt()

Обновляет специфицированный столбец, заданный целым значением.

Вы можете использовать следующий фрагмент кода, чтобы модифицировать авторскую информацию, используя обновляемый результирующий набор данных:

Statement stmt = con.createStatement();

stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

ResultSet rs = stmt.executeQuery("SELECT au_id, city, state FROM authors WHERE au_id='893-72-1158' ");

rs.next();

rs.updateString("state", "NY");

rs.updateString("city", "Columbia");

rs.updateRow();

В этом фрагменте кода, строка, извлеченная из таблицы authors, где id автора равен 893-72-1158. В извлеченной строке, значение столбца штат изменено на NY и значение столбца город изменено на Columbia.
1   2   3   4

Похожие:

Интерфейс доступа к базам данных iconРеферат клиент-сервер слушатель группы 37 2 курс заочного отделения Волохов Артур Юрьевич
Применительно к системам баз данных архитектура «клиент-сервер» интересна и актуальна главным образом потому, что обеспечивает простое...
Интерфейс доступа к базам данных iconРеферативные и библиографические базы данных
Библиотека Омгу предоставляет своим читателям доступ к локальным и удаленным электронным ресурсам: библиографическим, реферативным,...
Интерфейс доступа к базам данных iconТема: "Человеко-машинный интерфейс, разработка эргономичного интерфейса"
РФ; поиск актов по базе данных; печать журналов регистраций, отчетов и справок (аналитических и о проделанной работе); а также система...
Интерфейс доступа к базам данных iconПрограмма по формированию навыков безопасного поведения на дорогах...
Папка с раздаточным материалом (справочные таблицы по базам данных), лист с заданием для практических работ
Интерфейс доступа к базам данных iconАдреса патентных ведомств и других бд в internet
В случаях, когда нужно провести поиск зарубежных патентов, следует обращаться к национальным базам данных. В настоящее время открыты...
Интерфейс доступа к базам данных iconГимназия №1 г. Агрыз Республики Татарстан База данных основа информационной системы
Следствием этого являлось чрезвычайно низкая производительность операций ввода-вывода данных во внешнюю память. Магнитные барабаны...
Интерфейс доступа к базам данных iconГимназия №1 г. Агрыз Республики Татарстан База данных основа информационной системы
Следствием этого являлось чрезвычайно низкая производительность операций ввода-вывода данных во внешнюю память. Магнитные барабаны...
Интерфейс доступа к базам данных iconПоложение об электронном дневнике
Электронным дневником называется комплекс программных средств, включающий базу данных и средства доступа к ней
Интерфейс доступа к базам данных iconБазы данных, экспертные системы реферат «Реляционная модель данных...
...
Интерфейс доступа к базам данных iconОперационная система комплекс управляющих и обрабатывающих программ,...
Выполнение по запросу программ (ввод и вывод данных, запуск и остановка других программ, выделение и освобождение дополнительной...
Интерфейс доступа к базам данных iconПоложение об Электронном дневнике моу сош №89
Электронным дневником называется комплекс программных средств, включающий базу данных и средства доступа к ней
Интерфейс доступа к базам данных iconПрограмма по формированию навыков безопасного поведения на дорогах...
Датчик должен иметь последовательный периферийный интерфейс для подключения к персональному компьютеру или планшету с помощью преобразователя...
Интерфейс доступа к базам данных iconУрок по информатике по теме "Системы управления базами данных. Создание...
Повторить понятие “База данных”, “поле базы данных”, “запись базы данных”, “субд”
Интерфейс доступа к базам данных iconМеждисциплинарный подход к формированию информационной среды по проблемам...
Стран в области общественных наук началось еще в середине 1980-х годов, когда украинские потребители информации получили доступ к...
Интерфейс доступа к базам данных iconМуниципальное казенное общеобразовательное учреждение Борисоглебского...
Электронным дневником-журналом называется комплекс программных средств, включающий базу данных и средства доступа к ней
Интерфейс доступа к базам данных iconПодходы к разработке пп (1, 12)
Должен соблюдаться принцип: каждый элемент данных вводится один раз от первоисточника. На основе всех структур данных источников...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск