Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры-2 оопип часть 4.doc
Скачиваний:
46
Добавлен:
01.04.2014
Размер:
445.44 Кб
Скачать

63. Драйвера, соединения и запросы

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

D JDBC определяются четыре типа драйверов:

1. Тип 1 – драйвер, использующий другой прикладной интерфейс, в частности ODBC, для работы с СУБД (так называемый JDBC-ODBC мост). Стандартный драйвер типа 1 sun.jdbc.odbc.JdbcOdbcDriver входит в JSDK.

2. Тип 2- драйвер, работающий через нативные библиотеки (т.е. клиента) СУБД.

3. Тип 3 – драйвер, работающий по сетевому и независимому от СУБД протоколу с промежуточным java-сервером, который в свою очередь подключается к нужной СУБД.

4. Тип 4 – сетевой драйвер, работающий напрямую с нужной СУБД и не требующий установки native-библиотек.

Предпочтение естественным образом отдается второму типу, однако если приложение выполняется на машине, на которой не предполагается установка клиента СУБД, то выбор производится между третьим и четвертым типами. Причем четвертый тип работает напрямую с СУБД по ее протоколу, поэтому можно предположить, что драйвер четвертого типа будет более эффективным по сравнению с третьим типом с точки зрения производительности. Первый тип, используется реже, в тех случаях, когда у СУБД нет своего драйвера JDBC, зато есть драйвер ODBC.

Приложение, работающее с БД, работает по следующей обычной последовательности действий:

1. Загрузка класса драйвера БД при отсутствии экземпляра этого класса.

Для СУБД MySQL:

String driverName=”org.gjt.mm.mysql.Driver”;

Для СУБД MsAccess:

String driverName=”sun.jdbc.odbc.JdbcOdbcDriver ”;

После этого выполняется собственно загрузка драйвера в память:

Class.forName(driverName);

и становится возможным соединение с СУБД

2. Установка соединения с БД в виде:

Connection cn=

DriverManager.getConnection

(“jdbc:mysql://localhost/mydb”,”login”,”pass”);

В результате будет возвращен объект Connection и будет установлено соединение с соответствующей БД.

Класс DriverManager предоставляет средства для управления набором драйверов баз данных. Методу getConnection() необходимо передать тип и физическое месторасположение БД, а также логин и пароль для доступа. С помощью метода registerDriver() драйвера регистрируются, а методом getDrivers() можно получить список всех драйверов.

3. Создание объекта для передачи запросов

Statement st=cn.createStatement();

Объект класса Statement используется для выполнения запроса без его предварительной подготовки и команд SQL. Могут применяться также операторы для выполнения подготовленных запросов и хранимых процедур PreparedStatement и CallableStatement. Созданный объект можно использовать для выполнения запроса.

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

Результаты выполнения запроса помещаются в объект класса ResultSet:

ResutSet rs=st.executeQuery(“SELCT * FROM mytable”);

Для добавления или изменения информации в таблице вместо метода executeQuery() запрос помещается в метод executeUpdate().

5. Обработка результатов выполнения запроса производится методами интерфейса ResultSet, где самыми распространенными являются next() и getString() и аналогичные методы, начинающиеся с getТип() и updateТип().

6. Закрытие соединения

cn.close();

После того, как база больше не нужна, соединение закрывается.