Предисловие
Добро пожаловать в серию Джесса Либерти (Jesse Liberty) Программирование на примерах (Programming from Scratch ). Я создал эту серию книг, так как уверен, что традиционные учебники для начинающих не соответствуют потребностям каждого студента. В типичных учебниках по программированию сначала предоставляются необходимые знания, а затем приводятся примеры их практического применения. Такой метод хорош для большинства, но не для всех.
Я обучил программированию более 10 000 студентов в больших и маленьких группах, а также по Internet. Многие студенты сожалели о том, что не могут сесть за компьютер вместе с экспертом и работать над программой совместно. Чем изучать шаг за шагом каждый раздел, лучше попытаться создать работоспособный продукт и получить необходимые знания в процессе его разработки.
Эта идея привела к созданию серии Программирование на примерах. В каждой из этих книг эксперт промышленных технологий последовательно проведет вас через все этапы проектирования и реализации сложной коммерческой программы, обучая необходимым навыкам по ходу дела.
С книги серии На примерах можно начинать изучение интересующей вас темы, но в то же время можно сначала освоить традиционный учебник, а затем для углубления знаний воспользоваться книгой этой серии. Любой подход хорош; какой лучше, зависит от вашего личного стиля обучения.
Все книги серии построены в едином стиле и представляют процесс разработки приложения с момента постановки задачи и до окончательной реализации. Работа над книгой не предполагает наличия у читателя каких-либо предварительных знаний по изучаемой теме, На примерах на самом деле означает изучение с нуля, без подготовки.
Несмотря на то что не все книги этой серии написаны мной, как редактор проекта я ощущаю огромную личную ответственность за каждую из них.
Мною обеспечивается поддержка в сети материалов серии, а также группа обсуждения на Web-сайте (www.libertyassociates.com). Если у вас есть вопросы или деловые предложения, пишите мне по адресу: [email protected] .
Спасибо за внимание к этой книге.
Jesse Liberty
Редактор серии на примерах
Об авторе
Мег Заккар (Megh Thakkar) в настоящее время работает старшим инженером-программистом в Quest Software. До этого он работал в корпорации Oracle техническим специалистом. Мег имеет несколько сертификатов разработчика: OCP, MCSE, Novell® Certified ECNE, SCO UNIX ACE, а также звание сертифицированного консультанта Lotus. Он действительный член Oracle OpenWorld и различных обществ пользователей Oracle во всем мире. Автор книги Sams Teach Yourself on Windows NT® in 24 Hours и соавтор еще нескольких книг: Использование Oracle8/8i. Специальное издание (Special Edition Using Oracle8/8i), Oracle8 Server Unleashed, C++ Unleashed, COBOL Unleashed, Oracle Certified DBA и Using Oracle8. Мег известный специалист Oracle, он принимал участие в разработке Oracle, проводил консультации и осуществлял поддержку функционирования DBA во всем мире в течение девяти лет.
Введение
Эта книга, является одной из первых в серии На примерах. Она использует метод обучения в ходе работы над реальным проектом. В большинстве книг, посвященных разработке баз данных, основное внимание обращается на синтаксис языка и приемы программирования, ограничиваясь рядом весьма простых проектов, приводимых в качестве примера. Эта книга построена совершенно иначе.
По ходу действия шаг за шагом рассматриваются все фазы разработки Web-ориентированного приложения на основе Java и Oracle8i, использующего базу данных. Обсуждаются вопросы постановки задачи, анализа, дизайна, реализации, проверки работоспособности и установки приложения "Сетевой кофейный магазин". Эта книга особенно полезна двум категориям специалистов в области Internet-технологий (IT):
- профессионалам в Oracle, желающими воспользоваться преимуществами Java, которые стали доступны в Oracle8i, для создания Web-совместимых баз данных;
- разработчикам Java, которые хотели бы применить преимущества баз данных Oracle8i в своих приложениях, предназначенных для электронной коммерции (e-commerce).
Рассматриваемый процесс создания проекта с нуля не предполагает наличия у читателя предварительных знаний ни в области Oracle, ни в области Java, хотя минимальные навыки в 3GL-программировании были бы полезны. Несмотря на то что рассматриваемое приложение будет учебным, глубокий анализ основных особенностей создания Internet-приложения на базе Oracle8i дает возможность создавать гораздо более сложные коммерческие приложения или, в конце концов, усовершенствовать до коммерческого уровня проект "Сетевой кофейный магазин", рассмотренный в этой книге.
Данная книга не является ни исчерпывающим справочником синтаксиса Oracle, ни пособием по программированию на Java. В ней не рассматриваются все тонкости хитрых "финтов" языка Java, как во многих других книгах, посвященных этой теме. Здесь обсуждаются более существенные вопросы.
- Каковы особенности применения Oracle8i для электронной коммерции?
- Как применять Java в Web-ориентированном приложении, использующем базы данных?
- Какие проблемы возникают при использовании Java для работы с базами данных?
- Как использовать способность Oracle8i взаимодействовать с Internet?
- Какие проблемы могут возникнуть при разработке Web-ориентированной базы данных?
Ответы на эти и множество других вопросов будут получены по мере изучения этой книги.
Как организована книга
Данная книга не предполагает наличия у читателя предварительных знаний в области программирования на Oracle или Java, следовательно, изложенный материал позволит изучить все, что необходимо знать для успешного программирования баз данных, используя Oracle8i и Java. Основное внимание уделено проблемам, возникающим в процессе создания Internet-приложений, а также использованию свойств Oracle8i для решения этих проблем. Здесь, в отличие от других книг по программированию, отсутствуют бесконечные листинги программ и нудные попытки объяснить работу исходного кода. Разрабатываемое приложение разделено на ряд секций. В различных разделах рассматриваются участки кода, отвечающие за создание базы данных, за связь базы данных и броузера и т.д.
Главы организованы следующим образом.
- В главе 1, "Возможности Oracle8i в области Internet", обсуждается архитектура Oracle, рассматривается виртуальная машина Java для Oracle и начало создания проекта.
- В главе 2, "Создание и заполнение базы данных JavaStop", рассматриваются проблемы, возникающие при разработке Web-ориентированной базы данных. Описывается создание и заполнение базы данных Oracle8i с использованием инструментов Oracle SQL*Loader и Export/Import. По ходу этой главы будет сконструирована и создана база данных JSTP, которая в дальнейшем будет использована в качестве примера.
- В главе 3, "Управление базой данных Oracle JavaStop с помощью SQL", рассматривается использование SQL и PL/SQL для управления базой данных Oracle.
- В главе 4, "Java — основа для построения JavaStop", обсуждаются вопросы использования Java для создания простейшей инфраструктуры Web-ориентированного приложения.
- В главе 5, "Использование JDBC для подключения к JavaStop", описывается использование JDBC для получения доступа и организации взаимодействия с базой данных.
- В главе 6, "Использование JDBC для управления данными в JavaStop", обсуждаются вопросы использования JDBC для управления JavaStop.
- В главе 7, "Создание простого и компактного кода с использованием SQLJ", рассматривается использование SQLJ для эффективного создания кода приложения базы данных.
- В главе 8, "Обработка исключений в JavaStop", описывается связь кода приложения с системой обработки сообщений об ошибках JDBC и наладка обработки исключений проекта.
- В главе 9, "Создание хранимых процедур Java для JavaStop", рассматривается внедрение кода процедур Java в состав базы данных с помощью механизма хранимых процедур Java.
- В главе 10, "Поиск проблем и отладка кода JavaStop", приводятся разнообразные методы поиска ошибок и отладки приложения.
- В главе 11, "Брандмауэры и защита базы данных JavaStop", описывается использование средств безопасности Oracle для предотвращения несанкционированного доступа к базе данных
- В главе 12, "Масштабируемость JavaStop", рассматриваются вопросы организации одновременного использования базы данных большим числом пользователей.
- В главе 13, "Оптимизация работы JavaStop", основное внимание уделяется обнаружению "узких мест" и ликвидации источников возможных проблем, способных ухудшить производительность приложения JavaStop. Немаловажную роль в этом процессе играет настройка параметров работы и взаимодействия Oracle8i и Java.
- В главе 14, "Проверка и усовершенствование JavaStop", проводится серьезная всесторонняя проверка создаваемого приложения.
- В главе 15, "Модернизация JavaStop с помощью EJB и CORBA", обсуждаются пути усовершенствования созданного приложения и рассматриваются свойства Java Beans и CORBA, придающие приложению способность использовать распределенные вычисления.
В начале каждой главы описан ряд проблем, с которыми может столкнуться программист в ходе своей работы. Впоследствии изучаются пути решения этих проблем: определяются действия, которые необходимо предпринять, и обсуждаются конкретные средства выполнения задачи.
В книгах подобного типа обсуждается такое разнообразие проблем, что отдельные темы относятся к совершенно разным областям программирования. Чтобы сделать общую картину более понятной, применялась сходная с Web концепция изложения, которая обеспечивает графическое представление взаимодействия отдельных компонентов программирования. Это проиллюстрировано на 4-й стр. обложки.