столбцом, указанным в операторе SELECT, следует использовать вызов
g e tln t(l). При вызове метода можно также использовать имя столбца, так
что для получения того же самого значения можно использовать
getInt(«customer_id»).
Совет Если вместо положения столбца в методе используется его имя, это делает программу
более удобочитаемой.
Чтобы получить значение столбца first_name, являющегося вторым
столбцом, указанным в операторе SELECT, можно использовать вызовы
getSt ring(2) или getString(“ first_name” ). Эти же методы можно использовать
и для получения значений столбцов last_name и phone, так как они
тоже являются строками текста. Для получения значения столбца dob необходимо
использовать getDate(4) или getOate(“dob” ). Чтобы в действительности
прочесть хранящиеся в объекте ResultSet значения, вы должны
вызывать методы get, используя объект ResultSet.
Поскольку объект ResultSet может содержать более одной строки, JDBC
предоставляет метод next(), позволяющий последовательно перебирать
хранящиеся в объекте ResultSet строки. Метод next ( ) вызывается для получения
первой строки в объекте ResultSet, а при каждом последующем вызове
next ( ) происходит к следующей строке. Когда строки в объекте
ResultSet закончатся, при вызове метода next() будет возвращено логическое
значение false (ложь).
Рассмотрим объект ResultSet, носящий имя customerResultSet, в котором
есть пять строк, содержащих значения столбцов, выбранные из столбцов
customer_id, first_name, last_name, dob и phone таблицы customers.
В следующем примере показан цикл while, читающий значения столбцов
из customerResultSet в определенные ранее объекты customerld, firstName,
lastName, dob и phone:
П while (customerResultSet.next()) {
customerld = customerResultSet.getInt(“customer_id” );
firstName = customerResultSet.getString(“ first_name” ) ;
lastName = customerResultSet.getString(“ last_name” );
dob = customerResultSet.getDate(“dob” ):
phone = customerResultSet.getStringC'phone");
System.out.println(“customerId = “ + customerld);
System.out.println(“firstName = “ + firstName);
System.out.println(“ lastName = “ + lastName);
System.out.println(“dob = “ + dob);
System.out.println(“phone = “ + phone);
} // end of while loop
Когда в объекте customerResultSet не остается больше строк для чтения,
метод next() возвращает логическое значение false и выполнение цикла
прекращается. В данном примере методам get передаются для чтения
имена столбцов, а не числа, указывающие на их положение. Значения столбцов
были скопированы в переменные Java и в объекты; например, значение,
возвращаемое из customerResultSet.getInt(«customer_id»), копируется
564 Глава 15
в переменную customerld. Подобное копирование делать не обязательно:
можно просто использовать метод get в тех местах, где потребуется такое
значение. Однако, как правило, оказывается лучше выполнить такое копирование,
поскольку при этом будет сэкономлено время на выполнение метода,
если требуется получить одно и то же значение несколько раз.
Шаг 3: Закрытие объекта ResultSet
После окончания работы с объектом ResultSet нужно закрыть его, используя
метод c lo s e (). В следующем примере закрывается объект
customerResultSet:
□ customerResultSet.close();
Примечание Важно не забывать закрывать объекты ResultSet после окончания работы с
ними. Это послужит гарантией того, что они будут запланированы для участия в процедуре
сборки мусора. ___________________
Теперь, когда вы узнади, как получать строки, я покажу вам, как добавлять
строки в таблицу базы данных при помощи JDBC.
Добавление строк в базу данных
Для добавления строк в таблицу используется оператор INSERT языка SQL.
Есть два основных способа выполнения оператора INSERT с использованием
JDBC:
■ использование метода executellpdate(), определенного в классе
Statement,
■ использование метода execute(), определенного в классе
PreparedStatement (об этом классе см. ниже в данной главе).
Примеры этого раздела иллюстрируют, как добавить строку в таблицу
customers. Значения столбцов customer_id, first_name, last_name, dob и
phone для этой новой строки устанавливаются равными 6; Jason; Price;
February 22, 1969 и 800-555-1216, соответственно.
Для добавления этой новой строки используется тот же самый объект
Statement, что был определен ранее (myStatement), вместе с теми же переменными
и объектами, которые были использованы для выборки строк из
таблицы customers в предыдущем разделе. В первую очередь эти переменные
и объекты устанавливаются на те значения, которые должны иметь
столбцы базы данных в таблице customers:
П customerld = 6;
firstName = “Jason” ;
lastName = “Red” ;
dob = java.sql.Date.value0f(“1969-02-22");
phone = “800-555-1216";
Выполнение SQL с использованием Java 565
Примечание Класс java.sql.Date хранит даты, используя формат YYYY-MM-DD, где YYYY -