Логин:   Пароль:






Новости
Рассылки
Форум
Поиск


Java
- Апплеты
- Вопрос-ответ
- Классы
- Примеры
- Руководства
- Статьи
- IDE
- Словарь терминов
- Скачать

Мобильная Java
- Игры
- Примеры
- Статьи
- WAP, WML и пр.

JavaScript
- Вопрос-ответ
- Примеры
- Статьи

Веб-мастеринг
- HTML
- CSS
- SSI

Разминка для ума
Проекты
Книги
Ссылки
Программы
Юмор :)




Rambler's Top100
Rambler's Top100

Java: СтатьиПодключение к базе данных с помощью JDBC

Подключение к базе данных с помощью JDBC

Подключение Java-программы к реляционной СУБД с помощью JDBC выполняется в три этапа:

  1. Установка связи между Java-программой и диспетчером базы данных.
  2. Передача SQL-команды в базу данных с помощью объекта Statement.
  3. Чтение полученных результатов из базы данных и использование их в программе.
Рассмотрим эти три этапа.

Работа с классом DriverManager

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

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

Загрузка драйверов

Драйверы 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

После регистрации драйвера с помощью диспетчера драйверов его можно применять для подключения к базе данных. Для этого диспетчеру следует сообщить о создании нового подключения. В ответ на это диспетчер драйверов вызовет соответствующий драйвер и возвратит ссылку на установленное подключение. Для создания подключения необходимо указать место расположения базы данных, а также (как правило для большинства баз данных) учётное имя и пароль, как показано ниже.


Connection myConnection = DriverManager.getConnection(
"jdbc:odbc:mydataSource",
"username",
"password");

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

Объект Statement

Объект Statement предназначен для хранения SQL-команд. При пересылке объекта Statement базе данных с помощью установленного подключения СУБД запустит заданную SQL-команду и возвратит результат её выполнения в виде объекта ResultSet.

Методы объекта statement заключаются внутри конструкции try{…} catch.

Для извлечения результатов запроса в виде объекта ResultSet следует использовать приведённый код:



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

или

ResultSet theSet;
if(theStatement.execute("SELECT * FROM *")) 
theSet = theStatement.getResultSet();


Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/books/show2b.php on line 11

Warning: mysql_db_query() [function.mysql-db-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/books/show2b.php on line 19

Warning: mysql_db_query() [function.mysql-db-query]: A link to the server could not be established in /pub/home/javaport/javaportal/books/show2b.php on line 19

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /pub/home/javaport/javaportal/books/show2b.php on line 30
Узнай о чем ты на самом деле сейчас думаешь тут.


[an error occurred while processing this directive]



Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/news/worldnews.php on line 91

Warning: mysql_db_query() [function.mysql-db-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/news/worldnews.php on line 93

Warning: mysql_db_query() [function.mysql-db-query]: A link to the server could not be established in /pub/home/javaport/javaportal/news/worldnews.php on line 93

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /pub/home/javaport/javaportal/news/worldnews.php on line 95