corner imagecorner image
FeaturesPluginsDocs & SupportCommunityPartners

Обращение к базе данных MySQL при помощи веб-служб RESTful

В этом руководстве описана организация обращений к базе данных MySQL в качестве конечной точки веб-службы RESTful с помощью среды IDE NetBeans. Выполните развертывание демонстрационной базы данных "sakila" на сервере GlassFish v2 с помощью подключаемого модуля "RESTful Web Services". В этом руководстве приведены процедуры создания следующего:

  • Подключение к базе данных MySQL
  • Новый источник данных с использованием подключения
  • Классы объектов из базы данных MySQL
  • Веб-службы RESTful из классов объектов

Содержание

Содержимое на этой странице относится к среде IDE NetBeans 6.1 и 6.0

Для работы с этим руководством требуется программное обеспечение и ресурсы, перечисленные ниже.

Программное обеспечение или ресурс Требуемая версия
Среда IDE NetBeans Web & Java EE, версия 6.1 или 6.0
Комплект для разработчика на языке Java (JDK) версия 6 или
версия 5
Последняя стабильная версия MySQL (загрузить)
Демонстрационная база данных MySQL "sakila" (загрузить)
Веб-сервер или сервер приложений, совместимый с Java EE Веб-сервер Tomcat 6.0 и/или
Сервер приложений GlassFish v2

При необходимости серверы Tomcat и GlassFish могут быть установлены при помощи дистрибутива "Web and Java EE" среды IDE NetBeans. Также можно воспользоваться страницей загрузок GlassFish или страницей загрузок Apache Tomcat.

Для работы с этим руководством также требуется подключаемый модуль "RESTful Web Services". В среде IDE перейдите в диспетчер подключаемых модулей в меню "Tools" и проверьте, установлен ли подключаемый модуль "RESTful Web Services", на вкладке "Installed". Если нет, установите его на вкладке "Available Plugins", как показано ниже:

RESTful в диспетчере подключаемых модулей

Введение

MySQL является наиболее распространенным по всему миру программным обеспечением баз данных с открытым кодом. За всю историю его существования было загружено и распределено более 100 миллионов копий. Максимальная скорость и надежность работы, а также простота использования позволили MySQL стать предпочтительным выбором менеджеров ИТ. Это программное обеспечение используется для решения основных проблем, связанных с простоем, обслуживанием, администрированием и поддержкой.

В среде IDE поддерживается быстрая разработка веб-служб RESTful из баз данных путем создания классов объектов и обеспечения доступа к ним. В основе веб-служб RESTful лежат операции заголовков HTTP. Создание веб-служб с помощью подхода RESTful становится популярной альтернативой использованию технологий развертывания служб в Интернете на основе SOAP вследствие простоты применения и возможностей передачи данных непосредственно по HTTP.

Эта демонстрация была создана Arun Gupta в ознаменование приобретения MySQL компанией Sun Microsystems. Она иллюстрирует экспозицию базы данных MySQL в качестве веб-службы RESTful в среде IDE.

Перед началом работы с этим руководством ознакомьтесь со следующими документами:

Создание подключения к базе данных

В среде IDE имеется драйвер JDBC MySQL Connector/J, который позволяет создавать подключения к базе данных MySQL. Целью этого упражнения является создание такого подключения.

  1. Запустите базу данных MySQL.
    • В ОС Windows введите команду mysqld-nt --user root --password=your_root_user_password. Необходимо открыть каталог MySQL bin, либо каталог bin должен находиться по текущему пути. При появлении ошибки с сообщением о том, что mysql не удается подключиться к localhost, запустите службу MySQL ("Control Panel > Administrative Tools > Services").
    • В системах UNIX введите команду . /bin/mysqld_safe из каталога MySQL.
  2. Запустите среду IDE. Откройте вкладку "Services". Разверните узел "Databases > Drivers". Найдите драйвер MySQL. Если драйвер отсутствует, щелкните правой кнопкой мыши узел "Drivers", выберите "New Driver" и введите в диалоговом окне путь к драйверу MySQL Connector/J.

    Вкладка "Servers" с драйверами
  3. Щелкните правой кнопкой мыши узел драйвера MySQL (Connector/J) и выберите "Connect Using...". Откроется диалоговое окно "New Database Connection".
  4. Оставьте в полях "Name" и "Driver" значения по умолчанию. В поле "Database URL" введите jdbc:mysql://localhost:sakila. В поле "User Name" введите root, а в поле "Password" введите пароль пользователя "root". Диалоговое окно должно выглядеть следующим образом. После завершения нажмите кнопку "OK".
    Создание нового подключения к базе данных MySQL

Настройка проекта веб-приложения

Цель этого упражнения состоит в создании нового проекта веб-приложения. Этот проект будет содержать классы объектов и веб-службы RESTful.

  1. Выберите в главном меню "File > New Project" (Ctrl-Shift-N). В области "Categories" выберите "Web". В области "Projects" выберите "Web Application" и нажмите кнопку "Next".
  2. Введите sakila в поле "Project Name". Обратите внимание на то, что теперь "Context Path" имеет значение /sakila.
  3. В поле "Project Location" укажите любой каталог на компьютере. Можно использовать местоположение по умолчанию.
  4. В поле "Server" выберите GlassFish. GlassFish является сертифицированным сервером приложений Java EE5 и входит в вариант установки "Web and Java EE" среды IDE NetBeans. Если используется сервер, отличный от GlassFish, например, поставляемый со средой веб-сервер Tomcat, может потребоваться его настройка. Эта процедура в данном руководстве не рассматривается.
  5. Установите флажок "Set as Main Project" и нажмите кнопку "Finish". Средой IDE будет создана папка проекта Sakila. Папка проекта содержит все исходные файлы и метаданные проекта, например, сценарий сборки Ant. Проект "HelloWeb" открывается в среде IDE. В редакторе исходного кода в главном окне откроется страница приветствия index.jsp. Структуру файлов проекта можно просмотреть в окне "Files" (Ctrl-2), а его логическую структуру – в окне "Projects" (Ctrl-1).
    Логическая структура пустого проекта

Создание классов объектов из базы данных

Цель этого упражнения состоит в создании классов объектов из базы данных sakila.

  1. Щелкните правой кнопкой мыши узел sakila и выберите "New > Entity Classes from Database", как показано ниже:


    Запуск классов объектов из мастера базы данных

  2. На экране "Database Tables" выберите "New Data Source" в раскрывающемся списке "Data Source". Откроется диалоговое окно "Create Data Source".
  3. В поле "JNDI Name" введите jndi/sakila. В раскрывающемся списке "Database Connection" выберите jdbc:mysql://localhost/sakila [root on Default schema], как показано ниже. Нажмите кнопку "OK". Диалоговое окно закрывается, и выполняется возврат к экрану "Database Tables".

    Диалоговое окно "Create Data Source"
  4. В поле "Available Tables" щелкните "film", а затем нажмите кнопку "Add >". Теперь страница "Database Tables" должна выглядеть так, как показано на рисунке ниже. Нажмите кнопку "Next".

    Выбор таблиц базы данных
  5. Откроется страница "Entity Classes". Выберите "Create Persistence Unit...". Примите все указанные ниже значения по умолчанию и нажмите кнопку "Create". Выполняется возврат на страницу "Entity Classes".
    Диалоговое окно "Create Persistence Unit"
  6. В поле "Package" введите sakila. Теперь страница "Entity Classes" должна выглядеть следующим образом:
    Заполненная страница "Entity Classes"
  7. Нажмите кнопку "Finish". В среде IDE создаются классы объектов.

  8. Просмотрите окно "Projects". Экран должен выглядеть следующим образом:
    Окно "Projects" с пакетом "sakila"

Настройка файла сохранения состояния

В разделе Создание классов объектов из базы данных был создан блок сохранения состояния. Настройка единицы сохранения состояния содержится в файле persistence.xml. В окне "Projects" в узле "Configuration Files" находится файл persistence.xml проекта.

Необходимо изменить файл сохранения состояния для передачи имени пользователя и пароля. Откройте вкладку "XML". Измените файл путем добавления свойств toplink.jdbc.user и toplink.jdbc.password. Это соответствует следующему фрагменту кода (добавленные или измененные части выделены полужирным шрифтом):

<persistence-unit name="sakilaPU" transaction-type="JTA">
<jta-data-source>jndi/sakila</jta-data-source>
<properties>
<property name="toplink.jdbc.user" value="root"/> <property name="toplink.jdbc.password" value="your_root_user_password"/>
</properties>

</persistence-unit>

Создание веб-служб RESTful из классов объектов

Целью этого упражнения является создание веб-служб RESTful из классов объектов, созданных в предыдущем разделе.

  1. Щелкните правой кнопкой мыши пакет, содержащий классы объектов, и выберите "New > RESTful Web Services from Entity Classes", как показано ниже:
    Выбор мастера
  2. В мастере создания веб-служб RESTful из классов объектов нажмите кнопку "Add All". Экран должен выглядеть следующим образом:
    Выбор классов объектов
  3. Нажмите кнопку "Next". Появится экран "Generated Classes". Примите значения по умолчанию и нажмите кнопку "Finish". Средой IDE создаются веб-службы RESTful.

    Узел "RESTful Web Services" в окне "Projects" теперь содержит все веб-службы RESTful в проекте. Значение в квадратных скобках, например, [/films/], является значением для шаблона URI. По исходному файлу также можно перемещаться путем двойного щелчка этого узла. Также на этом экране отображаются все методы HTTP и методы поиска подресурсов. Как и в предыдущем случае, перемещаться по методам можно путем двойного щелчка узлов.

Теперь, после создания классов объектов и веб-служб RESTful, можно перейти к тестированию приложения. В IDE имеется удобная служебная программа для тестирования веб-служб RESTful. Она будет использоваться в следующем разделе.

Тестирование веб-служб RESTful

Целью этого упражнения является тестирование созданного приложения.

  1. Щелкните правой кнопкой мыши узел проекта и выберите "Test RESTful Web Services", как показано ниже:
    Пункт контекстного меню "Test RESTful Web Services" на вкладке "Project"

    Выполняется запуск сервера и развертывание приложения. Наконец, обозреватель должен отобразить приложение со ссылкой на каждую из веб-служб:
    Средство тестирования служб RESTful

  2. Слева расположен набор корневых ресурсов. Здесь они называются languages и films.

  3. Выберите "Films", а затем щелкните "Test" или "URL" "http://localhost:8080/sakila/resources/films/". В результате появится представление RESTful таблицы Film. По умолчанию отображается 10 записей из таблицы, и каждая запись возвращает идентификатор (id) фильма и ссылку на подробную информацию.

    Таблица фильмов

Для просмотра большего количества записей добавьте /?max=n к URL-адресу. Например, "http://localhost:8080/sakila/resources/films/?max=40" позволяет просмотреть первые 40 записей. Дополнительные поля из таблицы можно просмотреть путем добавления методов получения к классу "converter.FilmRefConverter", например:

@XmlElement
public String getTitle() {
    return entity.getTitle();
    }
Метод getTitle помимо уже возвращенных полей возвращает название фильма. Различные столбцы в таблице можно просмотреть при переходе на вкладку "Services", на которой необходимо развернуть созданное ранее подключение к базе данных "sakila":



Измененный вывод (с добавлением названия фильма) выглядит следующим образом:

Дополнительные упражнения

Вот еще несколько примеров для рассмотрения:

  • Создайте представления RESTful для других таблиц с помощью описанных выше действий.
  • Отобразите данные из различных таблиц в таблице данных Yahoo или Dojo, обернутой в jMaki, как описано в TOTD #10.
  • Выведите данные, извлеченные из базы данных, на странице JSP, как описано в Hello JPA World.
  • Создайте приложение CRUD с помощью таблицы данных jMaki, как показано в TOTD #15 или в демонстрации Screencast #Web10.

Приложение на JRuby on Rails, использующее MySQL, описано здесь. В TOTD #9 поясняется, как организация пула подключений JDBC в GlassFish может применяться для приложения на JRuby on Rails, использующего MySQL.

Ключевыми особенностями здесь являются простота использования MySQL с GlassFish и обеспечение такой возможности средой IDE NetBeans.


Дополнительная информация

Для получения дополнительных сведений об использовании среды IDE NetBeans 6.0 для разработки приложений для Java EE см. следующие ресурсы:

Оставить комментарии и предложения, обратиться за поддержкой и получить информацию о последних достижениях в области функциональных возможностей разработки для Java EE с помощью среды IDE NetBeans можно в списке рассылки .

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   GlassFish Community: an Open Source Application Server   Open Solaris  Open JDK: an Open SourceJDK   Mobile & Embedded Community     Sponsored by 
Sponsored by Sun Microsystems