Выбрать главу

информация имеет следующий вид:

■ имя_хоста:порт:8Ш_базыданных - где имя_хоста является именем

компьютера, порт определяет порт для доступа к базе данных,

а 8ГО_базы_л,анных представляет собой SID базы данных.

Для всех драйверов JDBC Oracle, включая тонкий драйвер и различные

драйверы OCI, зависящая от драйвера информация может также быть указана

с использованием пар «ключевое слово-значение» Oracle Net, которые

могут быть заданы в следующем формате:

□ (des c r iption=(aDDres s=(host=HNm_xocTa) (protocol=tcp) (por t=nopT) )

(connect_data=(sid=SID_6a3bi_flaHHbix))

где

■ имя_хоста - имя машины, на которой работает база данных;

■ порт - номер порта, на котором ожидает поступления запросов программа

прослушивания (listener) Oracle Net. Значение номера порта

по умолчанию равно 1521. Номер порта в вашей системе вы можете

узнать у АБД.

■ 8Ю_базы_данных - SID Oracle экземпляра базы данных, к которому вы

желаете подключиться. Значение SID вам также предоставит АБД.

В следующем примере показано, как применить метод getConnection()

для подключения к базе данных с помощью драйвера Oracle OCI, в котором

зависящая от драйвера информация указана с использованием пар

«ключевое слово-значение» Oracle Net:

□ Connection myConnection = DriverManager.getConnection(

“ jd b c : o ra c le :oc i :@(desription=(aDDress=(host=localhost)’’ +

“ (protocol=tcp)(port=1521))(connect_data=(sid=0RCL)))” ,

“s t o r e ” ,

“ store_password”

);

Как видно, в этом примере выполняется подключение к базе данных,

работающей на машине с идентификатором localhost, системный идентификатор

которой (Oracle SID) равен ORCL. При этом используется драйвер

556 Глава 15

OCI Oracle. Подключение к базе данных выполняется от имени пользователя

store с паролем store_password. Возвращаемый вызовом метода

getConnection() объект Connection сохраняется в myConnection.

Примечание Для драйвера Oracle OCI вы можете также использовать строку Oracle Net

TNSNAMES. За дополнительной информацией обратитесь к АБД или публикуемому корпорацией

Oracle руководству Oracle Database Net Services Administrator's Guide.___________________

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

Oracle

Для подключения к базе данных можно также использовать источник данных

Oracle. Источник данных Oracle использует более стандартизованный

способ получения различных параметров для подключения к базе

данных, чем в предыдущем методе, который использовал метод

DriverManager.getConnection(). В дополнение, источник данных Oracle

может быть зарегистрирован в JNDI. Использование JNDI вместе с JDBC

очень полезно, так как позволяет регистрировать (или связывать) источники

данных, а затем вести в программе поиск этих источников данных,

не предоставляя конкретных деталей подключения к базе данных. Следовательно,

если изменятся какие-то детали подключения к базе данных,

нужно будет изменить только объект JNDI.

Примечание Ознакомиться с JNDI можно в моей книге 0racle9i JDBC Programming. (Программирование

JDBC для 0racle9i, издание McGraw-Hill/Osborn, 2002 г.)__________________

Для использования источников данных Oracle необходимо выполнить

следующие шаги.

1. Создать объект источника данных Oracle класса oracle.jdbc.pool.

OracleDataSource.

2. Установить атрибуты объекта источника данных Oracle, используя

определенные для класса методы set.

3. Подключиться к базе данных через объект источник данных Oracle,

используя метод getConnection().

Эти три шага описаны в следующих разделах.

Ш а г 1: Создание объекта источника данных O racle

На первом шаге создается объект источника данных Oracle класса oracle,

jdbe.pool.OracleDataSource. В следующем примере создается объект

OracleDataSource по имени myDataSource (в предположении, что был импортирован

класс oracle.jdbc.pool.OracleDataSource):

□ OracleDataSource myDataSource = new OracleDataSourceO;

Следующим шагом после создания объекта OracleDataSource будет установка

атрибутов этого объекта с использованием методов SET.

Выполнение SQL с использованием Java 557

Ш а г 2: Создание атрибутов объекта источника данных O racle

Прежде чем вы сможете использовать объект OracleDataSource для подключения

к базе данных, нужно создать для этого объекта несколько атрибутов,

в которых этот объект указывает различные детали подключения,

используя различные методы SET, определенные для класса. К числу таких

деталей относятся имя базы данных, используемый драйвер JDBC и т. п.;

для каждой из таких деталей у объекта OracleDataSource имеется специальный

атрибут.

На самом деле, класс oracle.jdbc.pool.OracleDataSource реализует интерфейс

javax.sql.DataSource, обеспечиваемый JDBC. Интерфейс javax.sql.