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

i f (myConnection != n u l l ! {

myConnection. c lo s e ( );

}

} catch (SQLException e) {

e. pr in tS ta c kT ra ceO;

}

}

} / / конец main()

}

Примечание Вам может потребоваться отредактировать строки, которые помечены текстом:

«ОТРЕДАКТИРУЙТЕ В СЛУЧАЕ НЕОБХОДИМОСТИ», заменив их реальными значениями, требующимися

для доступа к вашей базе д а н н ы х . _________ ______________

Компиляция BasicExamplel

Для компиляции программы BasicExamplel.java введите из командной

строки вашей операционной системы команду:

□ javac Bas icExample l. java

Если переменная окружения CLASSPATH не установлена должным образом,

при попытке откомпилировать программу FirstExample.java вы полу

чите следующее сообщение об ошибке:

□ F ir s tE x amp le . ja v a :22: cannot resolve symbol

symbol : c la s s Orac leDr ive r

lo c a t io n : package jdbc

new o r a c le . jd b c .O r a c leD r iv e rO

1 e r ro r

Нужно проверить установки для переменной окружения CLASSPATH - вероятно,

в них пропущен Zip-файл с классами JDBC Oracle (например,

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

ojdbc6.jar). Следует вернуться к разделу “Установка переменной окружения

CLASSPATH” .

Совет Для получения подсказки по компилятору Java рекомендуется ввести команду javac

-help

Выполнение BasicExamplel

После того как программа BasicExamplel будет откомпилирована, можно

запустить на выполнение полученный в результате исполняемый файл

класса по имени BasicExample.class. Для этого необходимо ввести следующую

команду:

□ java BasicExamplel

Предупреждение Java чувствительна к регистру, поэтому следует убедиться, что имя программы

введено правильно: BasicExample с заглавными буквами В и Е.

Если программа завершается аварийно со следующим кодом и сообщением

об ошибке, это значит, что в вашей базе данных не существует пользователя

store с паролем store_password:

□ Error code = 1017

(Код ошибки = 1017

E rro r message = ORA-01017: in v a l id username/password; logon denied

Сообщение об ошибке = 0ra-01017: недействительная пара имя пользователя/

пароль; вход в систему не разрешен)

При получении такого сообщения следует проверить, что пользователь

store существует в базе данных.

Может случиться, что программа оказывается не в состоянии найти вашу

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

ошибке:

□ E r ro r code = 17002

(Код ошибки = 17002

Erro r message = Io exception: The Network Adapter could not e s ta b lis h

Сообщение об ошибке = Исключительная ситуация ввода/вывода: сетевой

адаптер не в состоянии установить

the connection

соединение)

Как правило, эта ситуация возникает по одной из следующих двух причин.

■ На машине с идентификатором localhost отсутствует база данных с

идентификатором системы Oracle (Oracle SID) ORCL.

■ Oracle Net не работает или не ведется прослушивание запросов на

соединение на порте 1521.

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

в программе, а база данных и Oracle Net запущены.

580 Глава 15

Если программа работает, вы должны получить следующие выходные

данные:

П Added row to customers ta b le

Updated row in customers ta b le

Deleted row from customers ta b le

Retrieved rows from customers ta b le

customerld = 1

firstName = Jean

lastName = Brown

dob = 1965-01-01

dobTime = 00:00:00

dobTimestamp = 1971-03-16 00:00:00.0

phone = 800-555-1211

customerld = 2

firstName = Cynthia

lastName = Green

dob = 1968-02-05

dobTime = 00:00:00

dobTimestamp = 1968-02-05 00:00:00.0

phone = 800-555-1212 . *

customerld = 3

firstName = Steve

lastName = White

dob = 1971-03-16

dobTime = 00:00:00

dobTimestamp = 1969-02-22 00:00:00.0

phone = 800-555-1213

customerld = 4

firstName = G a il

lastName = Black

dob = n u l l

dobTime = n u l l

dobTimestamp = n u l l

phone =800-555-1214

customerld = 6

firstName = Jason

lastName = Red

dob = 1969-02-22

dobTime = 00:00:00

dobTimestamp = 1969-02-02 00:00:00.0

phone = 800-555-1216

Retrieved row from products ta b le

product_id = 12

product_type_id = 0

Last value read was NULL

productTypeld = n u l l

productldShor t = 12

p ro d u c t ld ln t = 12

productldLong = 12

p r ic e F lo a t = 13.49

priceDouble = 13.49

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

priceBigDec = 13.49

Created addresses table

Dropped addresses table

Подготовленные операторы SQL

Когда оператор SQL посылается в базу данных, программное обеспечение

базы данных читает этот оператор и проверяет его на правильность. Этот

процесс известен как синтаксический анализ оператора SQL. Затем программное

обеспечение строит план, известный как план выполнения оператора,

для реального выполнения оператора. До сих пор для всех операторов

SQL, посылаемых в базу данных через JDBC, было необходимо строить

новые планы выполнения. Это было связано с тем, что все посылаемые

в базу данных операторы SQL были различными.