Використання класу Connection

План

Тема 15 Принципи та методи роботи з базами даних. Стандарт JDBC

1 Що таке JDBC?

2 Підключення до бази даних за допомогою JDBC

3 Робота із класом DriverManager

4 Завантаження драйверів

5 Використання класу Connection

6 Об’єкт Statement

1 Що таке JDBC?

Як і всі Java API, JDBC є набором класів та інтерфейсів, в сукупності підтримуючий певний набір функцій. У випадку JDBC ці функції забезпечують доступ до бази даних. Класи й інтерфейси єабстракціями понять, загальних при доступі до баз даних будь-якого типу. Наприклад, Connection є інтерфейсом Java, що представляє з'єднання з базою даних. Аналогічно ResultSet представляє результуючий набір даних, що повертається командою SQL SELECT. Класи, що утворять JDBC API, перебувають у пакеті java.sql.

Природно, що конкретні деталі доступу до бази даних залежать від її виробника. JDBC фактично не має справи із цими деталями. Більша частина класів у пакеті Java.sql є інтерфейсами без реалізації. Реалізація цих інтерфейсів здійснюється виробником бази даних у вигляді драйвера JDBC. Як програміст баз даних вам потрібно знати лише деяке продрайвер, який ви використовуєте, - все інше робиться через інтерфейси JDBC. Специфічна інформація про базу даних, що необхідна для використання JDBC, містить у собі:

- URL для драйвера JDBC;

- Ім'я класу, що реалізує java.sql.Driver.

JNDI - Java Naming and Directory Interface (інтерфейс імен і каталогів Java) API. Він дозволяє запам'ятовувати об'єкти Java у службі імен і каталогів, такий як сервер Lightweight Directory Access Protocol (полегшений протокол доступу до каталогів - LDAP), і знаходити їх по імені.

2 Підключення до бази даних за допомогою JDBC

Підключення Java-програми до реляційної СКБД за допомогою JDBC виконується в три етапи:

- встановлення зв'язку між Java-програмою й диспетчером бази даних;

- передача SQL-команди в базу даних за допомогою об'єкта Statement;

- зчитування отриманих результатів з бази даних і використання їх у програмі.



Розглянемо ці три етапи.

3 Робота із класом DriverManager

Пакет JDBC призначений для роботи з різноманітними диспетчерами СКБД від різних розроблювачів. Для підключення до бази даних середовище виконання Java повинна завантажити відповідний драйвер зазначеної бази даних. Завантаження й вивантаження таких драйверів здійснюється за допомогою класу DriverManager.

Рисунок 15.1 - Алгоритм підключення

На цьому рисунку показана схема підключення Java-програми до бази даних. Клас DriverManager має структуру даних, що містить як самі драйвери у вигляді об'єктів Driver, так і інформацію про них.

4 Завантаження драйверів

Драйвери JDBC звичайно створюються постачальниками СКБД. Їхня робота полягає в обробці JDBC-підключень і команд, що надходять від Java-додатка, і в генерації машинно-залежних викликів стосовно бази даних.

Далеко не всі постачальники СКБД пропонують драйвери JDBC, але як правило ними завжди поставляються драйвера ODBC (Open Database Connectivity), які задовольняють стандарти Microsoft. При роботі із СКБД на платформі Windows постачальник використовуваної СКБД майже завжди пропонує власний драйвер ODBC. По цьомуе проблем з підключенням Java-додатка до бази даних в середовищі Windows звичайно не виникає, чого, на жаль, не можна сказати про інші платформи.

Попереднє завантаження драйвера

Завантаження драйвера може вироблятися як із програми, так і з командного рядка.

Для завантаження драйвера-мосту JDBC-ODBC з командного рядка необхідно ввести наступну команду:

Java -Djdbc.drivers=sun.odbc.JdbcOdbcDriver MyApplication

Для завантаження драйвера-мосту JDBC-ODBC із програми:

try

{

Class theDriver = sun.odbc.JdbcOdbcDriver.class;

}

catch(ClassNotFoundException e)

{

System.err.println("Драйвер JDBC/ODBC не знайдений");

}

Після реєстрації драйвера за допомогою диспетчера драйверів його можна застосовувати для підключення до бази даних. Для цього диспетчеру варто повідомити про створення нового підключення. У відповідь на це диспетчер драйверів викличе відповідний драйвер і поверне посилання на встановлене підключення. Для створення підключення необхідно вказати місце розташування бази даних, а також (як правило для більшості баз даних) облікове ім'я й пароль, як показано нижче.

Connection myConnection = DriverManager.getConnection(

"jdbc:odbc:mydataSource",

"username",

"password");

Після одержання запиту getConnection() диспетчер драйверів аналізує значення адреси URL для JDBC і, у свою чергу, передає його кожному зареєстрованому драйверу. Потім підключення буде встановлено за допомогою того драйвера, що першим пізнає дану адресу URL для JDBC і повідомить про готовність до підключення. Якщо жоден із драйверів не зможе розпізнати URL для JDBC, диспетчер драйверів ініціює обробку виняткової ситуації SQLException з видачею повідомлення про відсутність підходящого драйвера (No suitable driver).

6 Об'єкт Statement

Об'єкт Statement призначений для зберігання SQL-команд. При пересиланні об'єкта Statement базі даних за допомогою встановленого підключення,СКБД запустить задану SQL-команду й поверне результат її виконання у вигляді об'єкта ResultSet.

Для «добування» результатів запиту у вигляді об'єкта ResultSet можна використати такий код:

ResultSet theSet = theStatement.executeQuery("SELECT * FROM *");

або

ResultSet theSet;

if(theStatement.execute("SELECT * FROM *"))

theSet = theStatement.getResultSet();



7240597698977587.html
7240650273708467.html
    PR.RU™