Обращение к базе данных MySQL при помощи веб-служб RESTful
В этом руководстве описана организация обращений к базе данных MySQL в качестве конечной точки веб-службы RESTful с помощью среды IDE NetBeans. Выполните развертывание демонстрационной базы данных "sakila" на сервере GlassFish v2 с помощью подключаемого модуля "RESTful Web Services". В этом руководстве приведены процедуры создания следующего:
Подключение к базе данных MySQL
Новый источник данных с использованием подключения
Для работы с этим руководством также требуется подключаемый модуль "RESTful Web Services". В среде IDE перейдите в диспетчер подключаемых модулей в меню "Tools" и проверьте, установлен ли подключаемый модуль "RESTful Web Services", на вкладке "Installed". Если нет, установите его на вкладке "Available Plugins", как показано ниже:
Введение
MySQL является наиболее распространенным по всему миру программным обеспечением баз данных с открытым кодом. За всю историю его существования было загружено и распределено более 100 миллионов копий. Максимальная скорость и надежность работы, а также простота использования позволили MySQL стать предпочтительным выбором менеджеров ИТ. Это программное обеспечение используется для решения основных проблем, связанных с простоем, обслуживанием, администрированием и поддержкой.
В среде IDE поддерживается быстрая разработка веб-служб RESTful из баз данных путем создания классов объектов и обеспечения доступа к ним. В основе веб-служб RESTful лежат операции заголовков HTTP. Создание веб-служб с помощью подхода RESTful становится популярной альтернативой использованию технологий развертывания служб в Интернете на основе SOAP вследствие простоты применения и возможностей передачи данных непосредственно по HTTP.
Эта демонстрация была создана Arun Gupta в ознаменование приобретения MySQL компанией Sun Microsystems. Она иллюстрирует экспозицию базы данных MySQL в качестве веб-службы RESTful в среде IDE.
Перед началом работы с этим руководством ознакомьтесь со следующими документами:
В среде IDE имеется драйвер JDBC MySQL Connector/J, который позволяет создавать подключения к базе данных MySQL. Целью этого упражнения является создание такого подключения.
Запустите базу данных 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.
Запустите среду IDE. Откройте вкладку "Services". Разверните узел "Databases > Drivers". Найдите драйвер MySQL. Если драйвер отсутствует, щелкните правой кнопкой мыши узел "Drivers", выберите "New Driver" и введите в диалоговом окне путь к драйверу MySQL Connector/J.
Щелкните правой кнопкой мыши узел драйвера MySQL (Connector/J) и выберите "Connect Using...". Откроется диалоговое окно "New Database Connection".
Оставьте в полях "Name" и "Driver" значения по умолчанию. В поле "Database URL" введите jdbc:mysql://localhost:sakila. В поле "User Name" введите root, а в поле "Password" введите пароль пользователя "root". Диалоговое окно должно выглядеть следующим образом. После завершения нажмите кнопку "OK".
Настройка проекта веб-приложения
Цель этого упражнения состоит в создании нового проекта веб-приложения. Этот проект будет содержать классы объектов и веб-службы RESTful.
Выберите в главном меню "File > New Project" (Ctrl-Shift-N). В области "Categories" выберите "Web". В области "Projects" выберите "Web Application" и нажмите кнопку "Next".
Введите sakila в поле "Project Name". Обратите внимание на то, что теперь "Context Path" имеет значение /sakila.
В поле "Project Location" укажите любой каталог на компьютере. Можно использовать местоположение по умолчанию.
В поле "Server" выберите GlassFish. GlassFish является сертифицированным сервером приложений Java EE5 и входит в вариант установки "Web and Java EE" среды IDE NetBeans. Если используется сервер, отличный от GlassFish, например, поставляемый со средой веб-сервер Tomcat, может потребоваться его настройка. Эта процедура в данном руководстве не рассматривается.
Установите флажок "Set as Main Project" и нажмите кнопку "Finish". Средой IDE будет создана папка проекта Sakila. Папка проекта содержит все исходные файлы и метаданные проекта, например, сценарий сборки Ant. Проект "HelloWeb" открывается в среде IDE. В редакторе исходного кода в главном окне откроется страница приветствия index.jsp. Структуру файлов проекта можно просмотреть в окне "Files" (Ctrl-2), а его логическую структуру – в окне "Projects" (Ctrl-1).
Создание классов объектов из базы данных
Цель этого упражнения состоит в создании классов объектов из базы данных sakila.
Щелкните правой кнопкой мыши узел sakila и выберите "New > Entity Classes from Database", как показано ниже:
На экране "Database Tables" выберите "New Data Source" в раскрывающемся списке "Data Source". Откроется диалоговое окно "Create Data Source".
В поле "JNDI Name" введите jndi/sakila. В раскрывающемся списке "Database Connection" выберите jdbc:mysql://localhost/sakila [root on Default schema], как показано ниже. Нажмите кнопку "OK". Диалоговое окно закрывается, и выполняется возврат к экрану "Database Tables".
В поле "Available Tables" щелкните "film", а затем нажмите кнопку "Add >". Теперь страница "Database Tables" должна выглядеть так, как показано на рисунке ниже. Нажмите кнопку "Next".
Откроется страница "Entity Classes". Выберите "Create Persistence Unit...". Примите все указанные ниже значения по умолчанию и нажмите кнопку "Create". Выполняется возврат на страницу "Entity Classes".
В поле "Package" введите sakila. Теперь страница "Entity Classes" должна выглядеть следующим образом:
Нажмите кнопку "Finish". В среде IDE создаются классы объектов.
Просмотрите окно "Projects". Экран должен выглядеть следующим образом:
Настройка файла сохранения состояния
В разделе Создание классов объектов из базы данных был создан блок сохранения состояния. Настройка единицы сохранения состояния содержится в файле persistence.xml. В окне "Projects" в узле "Configuration Files" находится файл persistence.xml проекта.
Необходимо изменить файл сохранения состояния для передачи имени пользователя и пароля. Откройте вкладку "XML". Измените файл путем добавления свойств toplink.jdbc.user и toplink.jdbc.password. Это соответствует следующему фрагменту кода (добавленные или измененные части выделены полужирным шрифтом):
Целью этого упражнения является создание веб-служб RESTful из классов объектов, созданных в предыдущем разделе.
Щелкните правой кнопкой мыши пакет, содержащий классы объектов, и выберите "New > RESTful Web Services from Entity Classes", как показано ниже:
В мастере создания веб-служб RESTful из классов объектов нажмите кнопку "Add All". Экран должен выглядеть следующим образом:
Нажмите кнопку "Next". Появится экран "Generated Classes". Примите значения по умолчанию и нажмите кнопку "Finish". Средой IDE создаются веб-службы RESTful.
Узел "RESTful Web Services" в окне "Projects" теперь содержит все веб-службы RESTful в проекте. Значение в квадратных скобках, например, [/films/], является значением для шаблона URI. По исходному файлу также можно перемещаться путем двойного щелчка этого узла. Также на этом экране отображаются все методы HTTP и методы поиска подресурсов. Как и в предыдущем случае, перемещаться по методам можно путем двойного щелчка узлов.
Теперь, после создания классов объектов и веб-служб RESTful, можно перейти к тестированию приложения. В IDE имеется удобная служебная программа для тестирования веб-служб RESTful. Она будет использоваться в следующем разделе.
Тестирование веб-служб RESTful
Целью этого упражнения является тестирование созданного приложения.
Щелкните правой кнопкой мыши узел проекта и выберите "Test RESTful Web Services", как показано ниже:
Выполняется запуск сервера и развертывание приложения. Наконец, обозреватель должен отобразить приложение со ссылкой на каждую из веб-служб:
Слева расположен набор корневых ресурсов. Здесь они называются languages и films.
Выберите "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.
Оставить комментарии и предложения, обратиться за поддержкой и получить информацию о последних достижениях в области функциональных возможностей разработки для Java EE с помощью среды IDE NetBeans можно в списке рассылки .