Язык программирования Java. Создание приложений для работы с базами данных – технологии ORM (Hibernate)
Описание
Аудитория: разработчики, переходящие на платформу Java, ориентирующиеся в одном из языков: C++, Pascal, Clipper, Fox, знающие механизмы доступа к базам данных.
Цель курса: после завершения курса, слушатели самостоятельно смогут создавать клиентские приложения на языке Java для реляционных баз данных с использованием библиотек ORM (object/relational mapping) – Hibernate.
На обучении строятся примеры приложений с использованием стандартных шаблонов, так же много приводится примеров анти-патернов, которые, к сожалению, встречаются на практике и даже в сегодняшней литературе.
Все примеры и презентации в виде рисунков (которые были сделаны лектором), передаются слушателям на магнитных носителях.
Рекомендуемая литература: Брюс Эккель Философия JAVA, Питер. Джошуа Блох, Java. Эффективное программирование, Лори; The J2EE 1.6 Tutorial, SUN, Документация по библиотекам Hibernate.
Программа курса
- Основы Языка Java. Почему Java? Краткий обзор Java — история. Первое простейшее приложение.
- Сравнение интегрированных сред разработки Jdeveloper, Eclipse, Net Beanse. Рекомендации по выбору среды разработки.
- Четыре вида приложений, разрабатываемые в Java. Пакет – основа размещения классов. Сборка приложений. Манифест и дескрипторы размещения приложений. Передача приложений конечным пользователям, размещение на серверах приложений. Использование серверов для для поддержки версионности приложений. Командная строка Java для запуска приложений. Использование библиотек. Управление памятью из командной строки.
- Скалярные и объектные типы данных. Статический и динамический контекст. Классы и загрузчики. Синглетоны. Интерфейсы, перечисления и аннотации.
- Использование UML для разработки моделей классов. Статическое и динамическое представление классов. Ассоциации. Управление доступом к переменным и методам. Наследование и реализация интерфейсов.
- Обзор основных пакетов java. Классы для работы со строками (String, StringBuffer, StringBuilder, StringTokenizer и др.). Класс Runtime и System – получение доступа к среде выполнения. Управление свойствами среды выполнения Java.
- Коллекции. Списки класса List. Стеки и класс LinkedList, создание очередей. Множества Set и SortedSet.
- Ассоциированные списки Map (HashMap, TreeMap, SortedMap, Vector и Enumeration. Файловый ввод/вывод (InputStream, OutputStream и др.). Класс File. Чтение и запись данных, сериализация объектов.
- Основы кэширования данных. Мягкие с слабые ссылки. Пример создания собственного контейнера объектов.
- Сериализация данных. Сохранение и восстановление пользовательского интерфейса. Передача объектов Java по сети. Краткое введение в события Java. Модель возникновения и обработки событий. Вложенные и анонимные классы. Менеджеры компоновок. Использование классов графического интерфейса пользователя Abstract Window Toolkit(AWT), Swing, технология SWT . Формирование собственных компонент и их инсталяция в средах разработки.
- Основы XML. Общая нотация языка разметки. Схема документа. Управление пространством имен. DOM и SAX парсеры, использование Java классов для проверки документов. Построение схем документов с помощью средств разработки Java. Введение в JAXB. Marshaling и UnMarshaling XML документов. Создание объектов Java на основе XML документов.
- Многопоточное программирование. Процессы и потоки, контексты. Приоритеты потоков и синхронизация. Класс Thread и доступ к главному потоку. Два способа создания дочернего потока – интерфейс Runnable и класс Thread. Группы потоков. Разработка приложений с использованием средств многопоточного программирования.
- Общая архитектура доступа к данным. ODBC и JDBC. Сравнение различных драйверов. URL базы данных. Три способа соединения с данными Oracle из Java – обзор. Совместимость Oracle JDBC драйверов. Конфигурация JDBC драйвера и его настройка.
- Интерфейс Connection, Statement, ResultSet, MetaDataResultSet и другие, для обеспечения доступа к данным (архитектура). Последовательность соединения с Базой Данных . Отображение типов данных реляционной базы на java.sql. Потоковые типы данных, хранение объектов Java в реляционной базе данных, динамическое выполнение методов. Использование интерфейсов для извлечения данных
- Выполнение хранимых процедур на сервере. Интерфейс CallableStatement. Получение наборов данных на сторону клиента через параметры и возвращаемые значения функций.
- Обработка исключительных ситуаций на стороне клиента. Класс java.sql.SqlException. Извлечение серверной информации об ошибке на стороне клиента.
- Библиотеки ORM – Hibernate, JDO, Apache OpenJPA. Спецификация JPA (Java Persistence API) – обзор. Что выбрать?
- Порядок инсталляции библиотеки ORM в пользовательское приложение на примере Hibernate. Настройка среды разработки для работы с ORM — Eclipse.
- Конфигурация сессии и фабрики доступа к данным. Использование конфигурационных xml файлов.
- Использование провайдера управления сущностями. Выполнение Native запросов в базу данных и извлечение результатов. Отображение результатов на коллекции массивов. Использование пакетных обновлений данных. Введение в систему управления транзакциями ORM.
- Определение правил отображения реляционных данных на java объекты, с помощью аннотаций.
- Создание простейшего сущностного компонента на основе таблицы в базе данных. Конфигурация первичного ключа. Аннотация @Id, @SequenceGenerator, @TableGenerator. Композиционный первичный ключ. Аннотация @Embeddable и @EmbeddedId. Отображение композиционного первичного ключа на сущностный класс – аннотация @IdClass.
- Конфигурация метаданных по таблицам и колонкам – аннотации @Table, @SecondaryTable. @Column. Связанные колонки – @JoinColumn. Использование различных отношений между колонками. Конфигурация базового отображения примитивных типов данных в таблицах — @Basic. Конфигурация больших объектов — @ Lob. Конфигурация поля Version для производства оптимистической блокировки записи.
- Определение методов жизненного цикла сущностной компоненты — @Pre… и @Post… аннотации. Ассоциация листенера и сущностного класса.
- Конфигурация наследования в сущностных компонентах.
- Язык запросов EJBQL, HQL. Использование аннотаций для создания именованных запросов -@NamedQuery. Использование параметров в запросах. Создание динамических запросов – javax.management.Query.
- Механизмы управления постоянством. Шаблон класса для управления сущностными объектами. Класс Persistence, EntityManagerFactory, EntityManager.
- Создание комплексного клинт-серверного приложения с использованием технологии ORM.
Расписание
Время проведения курса пока не определено, отправьте нам заявку, пожалуйста.
Возможно, мы предложим пройти курс в дистанционном режиме или организуем выездной курс, если у Вас группа.