Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Використання класу 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();

 


 


Читайте також:

  1. II. Із програм для 11 класу
  2. N байки (з 3 класу)
  3. Subject, aims and connection of lexicology with other sciences.
  4. Syntactic Connections between the Words
  5. А. Розрахунки з використанням дистанційного банкінгу.
  6. Альтернативна вартість та її використання у проектному аналізі
  7. Аналіз використання капіталу.
  8. Аналіз використання матеріальних ресурсів
  9. Аналіз використання матеріальних ресурсів.
  10. Аналіз використання обладнання.
  11. Аналіз використання прибутку та резервів його зростання
  12. Аналіз використання робочого часу на підприємстві




Переглядів: 1213

<== попередня сторінка | наступна сторінка ==>
Робота з файловою системою. Клас File | Тема 18 Пакет java.net. Клас URL. Завантаження даних з сервера

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.004 сек.