Пакет JDBC позволяет подключиться к реляционной базе данных и взаимодействовать с ней используя язык SQL. Язык SQL – это язык структурированных запросов для управления базами данных.
Перечислим основные команды SQL:
Создание базы данных: create database student
Создание таблиц: create table books (id char(10 not null, title char(10)).
Вставка, удаление и обновление строк:
insert into books values(“1”,”Java 2”);
delete from books where id=”2”;
update books set title=”Java 1” where id=”1”;
Создание запроса:
select * from books;
select title from books where id=”1”.
Объект Statement предназначен для хранения SQL-команд и создается методом createStatement() из объекта Connection. Объект Statement лучше всего подходит для SQL-операторов, выполняемых один раз. При пересылке объекта Statement базе данных с помощью установленного подключения СУБД запустит SQL-команду и возвратит результат ее выполнения в виде объекта ResultSet:
statement = connection.createStatetment();
ResultSet res=statement.executeQuery(
“select * from books”);
Если известно, что SQL-команда возвратит целое число, то можно использовать метод executeUpdate():
int kolSt = statement.executeUpdate(
“update books set title=”Java 2” where id=”1”);
Объект ResultSet функционирует как курсор. Для перехода к следующей строке необходимо вызвать метод next(). Разработаны все методы getТип() для всех основных типов данных которые совместимы с SQL.
while (res.next())
{ String s = rs.getString(1); }
После работы с экземпляром класса ResultSet необходимо вызвать его метод close(). Это также касается и классов Connection и Statement.
37. Сервлеты, структура и организация, методы жизненного цикла.
Сервлет - это самостоятельный компонент программы, который, функционирует в web контейнере, динамически генерируя HTML страницу, XML документ или другой материал в ответ на полученный от клиента запрос. В общем случае, сервлет - это определенным образом построенный Java класс, не имеющий привязки к какой-либо конкретной платформе или web серверу. Взаимодействие сервлета с клиентом строится по стандартной схеме запрос-ответ. При этом сам сервлет непосредственно с клиентом не связывается, а в роли посредника, поддерживающего связь с удаленным клиентом, выступает web-контейнер.
Жизненный цикл сервлета состоит из следующих шагов:
1 В случае отсутствия сервлета в контейнере.
1.1 Класс сервлета загружается контейнером.
1.2 Контейнер создает экземпляр класса сервлета.
1.3 Контейнер вызывает метод init(). Этот метод инициализирует сервлет и вызывается в первую очередь, до того, как сервлет сможет обслуживать запросы. За весь жизненный цикл метод init() вызывается только однажды.
2 Обслуживание клиентского запроса. Каждый запрос обрабатывается в своем отдельном потоке. Контейнер вызывает метод service() для каждого запроса. Этот метод определяет тип пришедшего запроса и распределяет его в соответствующий этому типу метод для обработки запроса. Разработчик сервлета должен предоставить реализацию для этих методов. Если поступил запрос, метод для которого не реализован, вызывается метод родительского класса и обычно завершается возвращением ошибки инициатору запроса.
3. В случае если контейнеру необходимо удалить сервлет, он вызывает метод destroy(), который снимает сервлет из эксплуатации. Подобно методу init(), этот метод тоже вызывается единожды за весь цикл сервлета.
Методы: Метод init(). При первой загрузке сервлета вызывается метод init(). Это дает возможность сервлету выполнить любую работу по установке, например, открытие файлов или установку соединений с их серверами. Если сервлет установлен на сервере постоянно, он загружается при запуске сервера. В противном случае сервер активизирует сервлет при получении первого запроса от клиента на выполнение услуги, обеспечиваемой этим сервлетом. Метод init() принимает один аргумент – ссылку на объект ServletConfig, который содержит аргументы для инициализации сервлета. Этот объект имеет метод getServletContext(), возвращающий объект ServletContext, который содержит информацию об окружении сервлета.
Метод service(). Я вляется сердцем сервлета. Каждый запрос от клиента приводит к одному вызову метода service(). Этот метод читает запрос и формирует ответное сообщение при помощи своих двух аргументов ServletRequest и ServletResponse - Объект ServletRequest содержит данные от клиента, а Объект ServletResponse содержит ответ сервлета клиенту.
Метод destroy(). В ызывается для освобождения всех ресурсов (например, открытые файлы и соединения с базой данных) перед выгрузкой сервлета. Этот метод может быть пустым, если нет необходимости выполнения каких-либо завершающих операций. Перед вызовом метода destroy() сервер ждет либо завершения всех обслуживающих операций, либо истечения определенного времени. Это означает, что метод destroy() может быть вызван во время выполнения какого-либо продолжительного метода service().
Метод getServletConfig() возвращает ссылку на объект, который реализует интерфейс ServletConfig. Данный объект предоставляет доступ к информации о конфигурации сервлета, т.е. доступ к параметрам инициализации сервлета и объекту контекста сервлета ServletContext, который дает доступ к сервлету и его окружению.
Метод getServletInfo() определяется программистом, создающим сервлет, для возврата строки, содержащую информацию о сервлете, например: автор и версия сервлета.