год, ММ - номер месяца, a DD - номер дня. Кроме того, для представления времени и дат, содержащих
время, можно также использовать классы java.sql.Time и java.sql.Timestamp соответственно.
При попытке указать в операторе SQL дату сначала нужно конвертировать
ее в формат, понятный базе данных, используя встроенную функцию
T0_DATE(). Функция T0_DATE() принимает строку, содержащую дату, а также
формат этой даты. Увидеть, как используется функция T0_DATE(), можно в
следующем примере оператора INSERT. Ниже в данной главе будут показаны
расширениях JDBC, предложенные корпорацией Oracle, и дополнительные
присущие только Oracle способы представления дат с использованием
типа oracle.sql.DATE.
Теперь можно выполнить оператор INSERT для вставки новой строки в
таблицу customers. Для чего используется объект myStatement, устанавливающий
значения столбцов customer_id, first_name, last_name, dob и phone
равными значениям, ранее присвоенным переменным customerld,
firstName, lastName, dob и phone.
□ myStatement.executeUpdate(
“ INSERT INTO customers “ +
“ (customer_id, first_name, last_name, dob, phone) VALUES ( “ +
customerld + + firstName + +lastName + “ +
“T0_DATE(' ” + dob + ‘ YYYY, MM, DD'), ‘ ” + phone + “ ' ) ”
);
Обратите внимание на использование функции T0_DATE() для конвертирования
объекта dob в приемлемую для базы данных Oracle дату. После
завершения выполнения оператора таблица customers будет содержать новую
строку.
Модификация строк базы данных
Для модификации строк базы данных используется оператор UPDATE. Как и
в случае выполнения с помощью JDBC оператора INSERT, можно использовать
метод executeUpdate(), определенный в классе Statement, или метод
execute(), определенный в классе PreparedStatement (см. ниже).
Следующий пример иллюстрирует, как можно модифицировать строку,
в которой столбец customer_id равен 1:
□ firstName = «Jean»;
myStatement.executeUpdate(
“UPDATE customers “ +
“SET first_name = " ’ + firstName + “ +
“WHERE customer_id = 1”
);
После выполнения этого оператора имя покупателя № 1 будет установлено
на «Jean».
566 Глава 15
Удаление строк из базы данных
Для удаления имеющихся строк из базы данных используется оператор
языка SQL DELETE. Можно использовать для этого определенный в классе
Statement метод executeUpdate() или метод execute(), определенный в классе
PreparedStatement.
Следующий пример иллюстрирует удаление из таблицы customers покупателя
№5:
□ myStatement.executeUpdate(.
“DELETE FROM customers “ +
“WHERE customer_id = 5"
);
После завершения этого оператора строка для покупателя № 5 оказывается
удаленной из таблицы customers.
Работа с числами
В этом разделе рассмотрены вопросы, связанные с хранением чисел в Java-
программах. База данных Oracle может хранить числа с точностью до 38
разрядов. В контексте представления чисел разрядность означает ту точность,
с которой числа с плавающей точкой могут быть представлены в
цифровой памяти компьютера. Разрядность в 38 цифр, предлагаемая базой
данных, позволяет хранить очень большие числа.
Все это очень хорошо при работе с числами в базе данных, но вы видели,
что Java использует для представления чисел собственный набор типов,
так что нужно быть очень внимательным при выборе типа данных
Java, представляющего в вашей программе числа, особенно, если вы собираетесь
хранить эти числа в базе данных.
Для хранения целых чисел можно использовать типы short, int, LONG
или java.math.BigInteger, в зависимости от того, насколько велики те числа,
которые вы собираетесь хранить. В таблице 15.4 показано количество
битов, которые используются для хранения типов short, int и LONG, а также
минимальные и максимальные значения для каждого из типов.
Таблица 15.4. Типы short, int и long
Тип Биты Нижняя граница Верхняя граница
short 16 -32768 32767
int 32 -2147483648 2147483647
long 64 -9223372036854775808 9223372036854775807
Для хранения в Java-программе чисел с плавающей точкой следует использовать
типы float, double или java.math.BigDecimal. В таблице 15.5 показаны
те же самые данные, что и в таблице 15.4, только для типов float и
double, а также точность, поддерживаемая каждым из этих типов.
Выполнение SQL с использованием Java 567
Таблица 15.5. Типы float и double
Тип Биты Нижняя граница Верхняя граница Точность
float 32 -3.4Е+38 3.4Е+38 6 цифр
double 64 -1.7Е+308 1.7Е+308 15 цифр
Как вы видите, тип float можно использовать для хранения в Java-npo-
грамме чисел с плавающей точкой с точностью до 6 цифр, а тип double -
для хранения чисел с плавающей точкой с точностью до 15 цифр. Если
нужно хранить числа с точностью, превышающей 15 цифр, можно использовать