
- •Оглавление
- •Java-технологии распределенных компьютерных систем
- •Инструментальные средства java для создания распределенных систем
- •Первая java-программа
- •Интерфейсы
- •Наследование
- •Import имя_пакета.*;
- •Ссылки this и super
- •Исключения
- •Массивы
- •Виртуальная машина java (jvm)
- •Распределенные компьютерные системы и их характеристики
- •Промежуточное программное обеспечение распределенных компьютерных систем
- •Архитектура java rmi
- •Достоинства и недостатки java-rmi
- •Технология corba
- •Достоинства и недостатки corba
- •Структура распределенного j2ee java-приложения
- •Hello World распределенное j2ee java-приложение Средства разработки
- •Структура
- •Код локального интерфейса
- •Html. Основные теги html.
- •Основные теги html
- •Формы html-документов
- •Cgi. Java web-сервер
- •Сервлет-технология java
- •Компоненты ejb
- •Страницы jsp
- •Теги и встроенные объекты jsp
- •Основные теги jsp-страниц.
- •Архитектуры распределенных приложений. Web-сервисы
- •Jms. Архитектура jms
Компоненты ejb
Любую задачу на сервере в принципе можно решить с помощью сервлетов. Однако нетривиальные задачи имеют большой объем JAVA-кода. В этом случае сервлеты могут стать весьма громоздкими. Их код плохо воспринимается и модифицируется. Для преодоления этих проблем фирма Sun разработала спецификацию компонентов EJB (Enterprise JAVA Beans), а также пакет классов и интерфейсов для работы с ними - javax.ejb. Реализуют EJB-компоненты, EJB-контейнер, JAVA Web-сервера. Компоненты EJB бывают трех типов:
Entity Bean;
Session Bean;
Message Driven Bean.
Entity Bean удобен для извлечения информации из баз данных и преобразования ее в объекты JAVA.
Session Bean – компоненты удобны для организации сеанса связи с пользователем и сложных вычислений по запросам клиента.
Имеется два вида Session Bean-компонентов:
а) Statefull Session Bean;
b) Stateless Session Bean.
Statefull – компоненты могут сохранять свое состояние, передавая его от запроса к запросу.
Stateless - теряют свое состояние после выполнения запроса.
Message Driven Bean предназначены для обмена сообщениями по технологии JMS (JAVA Message Service).
При создании EJB-компонентов разработчик кроме создания класса реализующего тот или иной тип EJB, должен написать 1 (2) интерфейса для взаимодействия с ним.
Так в примере HelloServlet.java участок кода:
import my HelloSessionLocal;
…
private HelloSessionLocal h;
…
message_ejb=h.sayHello();
Используется как для создания объекта типа локального ejb-интерфейса, так и вызова с его использованием ejb-метода sayHello().
JDBC
JDBC – стандарт доступа JAVA-приложений к СУБД. В настоящее время используют стандарты JDBC 2.0 и JDBC 3.0.
JDBC API состоит из двух пакетов: java.sql и javax.sql.
Для работы с базами данных рекомендуется использовать JDBC-драйвер поставляемый для конкретной СУБД фирмой-производителем. В крайнем случае, если драйвер JDBC не существует можно использовать Sun-ODBC-JDBC входящей в стандарты jdk-java начиная с v.1.0.
Важнейшими интерфейсами JDBC-API является:
Интерфейс |
Назначение |
Connection |
Осуществляет связь с СУБД используя класс DriverManager |
Statement, PreparedStatement, CallableStatement |
Выполняет SQL-утверждение |
ResultSet |
Возвращает набор данных после выполнения SQL-запроса |
Для использования IDBC API при работе в СУБД необходимо выполнить следующие шаги:
а) импортировать пакеты java.sql в программу:
import java.sql.*;
b) загрузить необходимый java-class драйвера для работы с конкретной СУБД;
c) установить соединение с БД и выполнить нужные действия с ее данными;
d) закрыть соединение с БД.
Для загрузки класса-драйвера в JAVA-программе как правило используется метод registryDriver() класса DriverManager.
Например:
DriverManager.registerDriver(new sun.jdbc.odbc.IdbcOdbcDriver());
Для соединения с БД используется метод getConnection() класса Driver Manager. Синтаксис его использования:
Connection экземпляр_соединения = DriverManager.getConnection(“строка подключения”,”имя пользователя”;”пароль”);
Работа с экземпляром соединения с БД завершается при помощи вызова метода close():
Экземпляр_соединения.close();