веб приложение для работы с базой данных java
Работа с базой данных
Подключение к MySQL
Для хранения данных, как правило, используются базы данных. В приложениях на Java мы можем использовать различные системы управления базами данных. Но так как, на сегодняшний день одной из наиболее используемых в приложениях на Java является СУБД MySQL, то основные моменты взаимодействия с БД будут рассматриваться преимущественно на примере MySQL.
Один из способов работы с базой данных представляет использование JDBC. JDBC (Java Database Connectivity) представляет специальный API, благодаря которому мы можем абстрагироваться от конкретной СУБД с ее особенностями и использовать единый интерфейс для работы с различными СУБД.
Для работы с базой данных в приложении на Java через JDBC необходим драйвер. Обычно разработчик каждой отдельной СУБД (MySQL, Oracle, PostgreSQL и т.д.) предоставляет специальный драйвер. Более подробно про аспекты работы в приложении Java можно посмотреть в соответствующем руководстве Java и базы данных. В данном же случае мы сосредосточимся непосредственно на работе с бд именно в JavaEE.
На странице загрузок выберем в поле «Select Operating System» пункт «Platform Independent» и затем загрузим zip-пакет с драйвером.
Распакуем загруженный пакет и найдем файл mysql-connector-java-8.0.12.jar (версия файла может отличаться).
Создадим в Eclipse новый проект по типу Dynamic Web Project и добавим в его папку WebContent/WEB-INF/lib :
Убедимся, что сервер MySQL запущен и сперва проверим, что мы можем подключаться к серверу базы данных. Вначале создадим на сервере MySQL пустую базу данных, которую назовем products и с которой мы будет работать в приложении на Java EE. Для создания базы данных применяется выражение SQL:
Эту команду можно выполнить либо из консольного клиента MySQL Command Line Client, либо из графического клиента MySQL Workbench, которые устанавливются вместе с сервером MySQL. Подробнее про создание базы данных можно прочитать в статье Создание и удаление базы данных.
Далее добавим в проект сервлет. Допустим, он будет называться ProductsServlet и будет содержать следующий код:
Переменная url хранит строку подключения. В частности, здесь она указывает, что сервер MySQL запущен на локальной машине (localhost), а подключение идет к бд productdb. Переменные username и password указывают соответственно на логин и пароль к серверу MySQL. В каждом конкретном случае эти значения могут отличаться.
Затем идет загрузка драйвера:
И далее создается объект Connection для взаимодействия с базой данной:
В случае удачного подключения после запуска приложения мы увидим соответствующее сообщение в браузере:
Если же что-то установлено неправильно: строка подключения, логин, пароль, не загужен драйвер или что-то еще, то мы увидим сообщение об ошибке.
Apache NetBeans 12.5
Автор: Трой Джуниперо (Troy Giunipero)
В этом документе описана процедура создания простого веб-приложения, которое подключается к серверу базы данных MySQL. Здесь также рассмотрены основные идеи и технологии веб-разработки, такие какJavaServer Pages (JSP), библиотека стандартных тегов JavaServer Pages (JSTL), интерфейс API связи с базами данных Java (JDBC) и двухуровневая архитектура между клиентом и сервером. Этот учебный курс разработан для начинающих разработчиков, обладающих базовыми знаниями в области веб-разработок и желающих применить свои знания к базе данных MySQL.
MySQL является популярной системой управления базами данных с открытым кодом, которая обычно используется в веб-приложениях благодаря своей скорости, гибкости и надежности. MySQL использует SQL (язык структурированных запросов) для доступа к данным в базе данных и их обработки.
Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.
7.2, 7.3, 7.4, 8.0, пакет Java EE
Драйвер JDBC MySQL Connector/J
GlassFish Server Open Source Edition 3.1.2.2
Примечания:
Комплект загрузки Java среды IDE NetBeans позволяет пользователям установить сервер GlassFish. Для работы с данным учебным курсом требуется сервер GlassFish.
Если необходимо сравнить проект с работающим решением, можно загрузить демонстрационное приложение.
Планирование структуры
С помощью двухуровневой архитектуры, в которой клиент взаимодействует с сервером напрямую, можно создать простое веб-приложение. В рамках данного учебного курса веб-приложение Java взаимодействует напрямую с базой данных MySQL с использованием API связи с базами данных Java. В сущности, именно драйвер MySQL Connector/J JDBC обеспечивает обмен данными между кодом Java, распознанным сервером приложения (GlassFish), и любым содержимым на SQL, языке, понятном для сервера базы данных (MySQL).
Для реализации описанного выше сценария необходимо разработать простое приложение для организации IFPWAFCAD Международной ассоциации по консультированию и развитию для бывших профессиональных борцов.
index.jsp
response.jsp
Создание нового проекта
Сначала необходимо создать новый веб-проект в среде IDE:
Выберите «Файл > Новый проект» (CTRL+SHIFT+N; ⌘+SHIFT+N в Mac ОС) в главном меню. Выберите категорию «Java Web», а затем выберите «Веб-приложение». Нажмите кнопку «Далее».
С помощью этого мастера можно создать пустое веб-приложение в стандартном проекте IDE. В стандартном проекте для компиляции, развертывания и выполнения приложения используется созданный в среде IDE сценарий сборки проекта Ant.
В поле «Имя проекта» введите «IFPWAFCAD». Также укажите местоположение проекта на компьютере. По умолчанию проекты в среде IDE помещаются в папку NetBeansProjects в домашнем каталоге. Нажмите кнопку «Далее».
В панели «Сервер и параметры» укажите сервер GlassFish в качестве сервера, на котором будет запускаться приложение.
*Примечание.*Сервер GlassFish отображается в раскрывающемся списке ‘Сервер’, если установлена версия Java IDE NetBeans. Поскольку сервер GlassFish включен в загрузку, он регистрируется в среде IDE автоматически. Для использования в проекте другого сервера нажмите кнопку «Добавить» рядом с полем с раскрывающимся списком «Сервер» и зарегистрируйте другой сервер в среде IDE. Работа с другими серверами, помимо GlassFish в рамках данного учебного курса не рассматривается.
В поле «Версия Java EE» выберите Java EE 5.
Для веб-проектов Java EE 6 и Java EE 7 использование дескриптора развертывания web.xml не требуется. Шаблон проекта NetBeans не содержит файл web.xml в проектах Java EE 6 и Java EE 7. Однако в данном учебном курсе рассматривается процесс объявления источника данных в дескрипторе развертывания. Функции, характерные только для Java EE 6 или Java EE 7, не требуются, поэтому в качестве версии проекта можно указать Java EE 5.
Нажмите кнопку «Завершить». Создается шаблон проекта для всего приложения и в редакторе открывается пустая страница JSP ( index.jsp ). Файл `index.jsp`служит в приложении страницей приветствия.
Подготовка веб-интерфейса
Начните с подготовки страницы приветствия ( index.jsp ) и страницы ответов ( response.jsp ). На странице приветствия реализована форма HTML для сбора пользовательских данных. На обеих страницах для просмотра структурированных данных используется таблица HTML. В этом разделе также рассматривается процесс создания таблицы стилей, которая расширяет внешний вид обеих страниц.
Настройка страницы приветствия
Убедитесь, что страница index.jsp открыта в редакторе. Если файл еще не открыт, дважды щелкните index.jsp под узлом «Веб-страницы» проекта IFPWAFCAD в окне «Проекты».
Измените текст между тегами
на Добро пожаловать в IFPWAFCAD, Международную ассоциацию по консультированию и развитию для бывших профессиональных борцов!
Откройте палитру среды IDE, выбрав в главном меню «Окно» > «Палитра» (CTRL+SHIFT+8; ⌘+SHIFT+8 в ОС Mac). Наведите курсор на значок «Таблица» в категории «HTML» и обратите внимание на то, что отображается фрагмент кода для элемента по умолчанию.
Установите курсор сразу же после тегов
. (Именно в этом месте будет внедрена новая таблица HTML). Далее в окне «Палитра» дважды щелкните значок «Таблица».
В появившемся диалоговом окне «Вставка таблицы» укажите следующие значения и затем нажмите кнопку «ОК»:
Рядов: 2
Столбцов: 1
Размер границы: 0 Код таблицы HTML создан и добавлен на страницу.
Добавьте следующее содержимое в заголовок таблицы и ячейку первой строки таблицы (новое содержимое выделено полужирным шрифтом):
Нажмите клавишу Enter, чтобы добавить пустую строку после добавленного содержимого, затем дважды щелкните «Список» в палитре, чтобы открыть диалоговое окно «Вставить список».
В диалоговом окне «Вставить список» ведите subject_id для текстового поля «Имя» и нажмите «OK». Обратите внимание на то, что к форме добавляется фрагмент кода для раскрывающегося списка.
Количество параметров для раскрывающегося списка не имеет значения. Позже в этом учебном курсе будет показано добавление тегов JSTL для динамического создания на основе данных, полученных из таблицы базы данных «Subject».
Для форматирования кода щелкните правой кнопкой мыши в редакторе и выберите ‘Формат’ (Alt-Shift-F; Ctrl-Shift-F в Mac). Код автоматически форматируется и должен теперь выглядеть следующим образом:
Для просмотра этой страницы в браузере щелкните правой кнопкой мыши в редакторе и выберите ‘Запустить файл’ (Shift-F6; Fn-Shift-F6 в Mac). После этого страница JSP будет автоматически скомпилирована и развернута на сервере. Открывается браузер по умолчанию, и в нем выводится страница из местоположения, где она развернута.
Создание страницы ответов
Для подготовки интерфейса для страницы response.jsp сначала необходимо создать файл в проекте. Обратите внимание на то, что большая часть содержимого, отображаемого на странице, создана динамически с помощью технологии JSP. Поэтому в следующих шагах будет необходимо добавить метки-заполнители, которые позже будут заменены кодом JSP.
Щелкните правой кнопкой мыши узел проекта «IFPWAFCAD» в окне «Проекты» и выберите «Создать > JSP». Откроется диалоговое окно «Новый файл JSP».
Hello World!
Для просмотра этой страницы в браузере щелкните правой кнопкой мыши в редакторе и выберите ‘Запустить файл’ (Shift-F6; Fn-Shift-F6 в Mac). Выполняется компиляция и развертывание страницы на сервере GlassFish с последующим открытием в браузере по умолчанию.
Создание таблицы стилей
Откройте мастер создания файлов, нажав кнопку ‘Создать файл’ ( ) на главной панели инструментов IDE. Выберите категорию «Web», а затем выберите «Каскадная таблица стилей» и нажмите кнопку «Далее».
В редакторе добавьте следующее содержимое к файлу style.css :
Для быстрого перехода между открытыми в редакторе файлами нажмите CTRL+TAB, а затем выберите требуемый файл.
Подготовка средств обмена данными между приложениями и базой данных
Наиболее эффективным способом реализации соединения между сервером и базой данных является настройка пула подключений базы данных. Создание нового подключения для каждого запроса клиента может занимать много времени, особенно для приложений, постоянно получающих огромное количество запросов. Во избежание этого создается и поддерживается множество подключений, организованных в виде пула подключений. Входящие запросы, требующие доступа к данным приложения, используют уже созданное подключение из пула. Аналогичным образом, когда запрос завершен, подключение не закрывается, а возвращается в пул.
*Примечание. *Для дальнейшей работы необходимо убедиться в том, что база данных MySQL с именем MyNewDatabase настроена корректно и содержит данные примера из ifpwafcad.sql. Этот файл SQL создает две таблицы Subject и Counselor и затем заполняет их данными для примера. Если это не было выполнено ранее, или с этим заданием возникли сложности, то прежде чем продолжить учебный курс, обратитесь к разделу Подключение к базе данных MySQL.
Помимо этого для создания источника данных и работы с сервером GlassFish в рамках данного учебного курса необходимо защитить базу данных паролем. При использовании учетной записи MySQL root по умолчанию с пустым паролем с помощью командной строки можно установить другой пароль.
Дополнительные сведения приведены в официальном справочном руководстве по работе с MySQL: Защита исходных учетных записей MySQL.
Работаем с базами данных в Java (на примере Microsoft SQL Server)
Практически ни одно серьёзное современное приложение не обходится без баз данных. Поэтому на сегодняшний день практически все основные языки программирования поддерживают работу с ними. Java не исключение.
Рассмотрим работу с базами данных в Java на примере Microsoft SQL Server.
В Java для доступа к базам данных используется технология JDBC. Это платформенно-независимый стандарт, который поддерживает большинство современных СУБД.
Работа с базами данных с помощью JDBC строится по следующему алгоритму:
Подключение драйвера СУБД к проекту
Драйвер СУБД для JDBC, если он не входит в состав JDK, как правило, можно скачать с официального веб ресурса её разработчика. В частности, JDBC драйвер для Microsoft SQL Server можно скачать здесь.
Драйвер СУБД представляет собой обычный jar файл. Его подключение к проекту ничем не отличается от подключения любой другой библиотеки.
Подключение приложения к базе данных
Вначале требуется сформировать строку подключения. Для Microsoft SQL Server она имеет следующий вид.
Рассмотрим подробнее шаблон строки подключения (переменная connectionUrl). Он начинается с двух ключевых параметров отделённых друг от друга и остальной части строки подключения двоеточиями:
После идентификатора драйвера следует описание параметров подключения в соответствии с требованиями той или иной конкретной СУБД.
В случае Microsoft SQL Server имя сервера необходимо указывать в формате имя_хоста\имя_экземпляра. Например: ServerDB\SQLSERVER_1. При этом не играет роли, откуда осуществляется подключение, локально с самого хоста или по сети.
На это необходимо обратить особе внимание, так как даже в статье на TechNet строка подключения приведена с ошибкой. По крайней мере, с новым драйвером, который поддерживает последние версии Microsoft SQL Server и Java, приведённая в ней строка подключения по факту не работает.
После формирования строки подключения следует зарегистрировать драйвер СУБД.
Веб приложение для работы с базой данных java
Мы приступаем к одному из очень важных разделов программирования на Java — работа с базами данных. Данные являются наверно наиглавнейшей составляющей программирования и вопрос их хранения крайне актуален. Не буду больше говорить о важности этого вопроса — тут можно писать много-много-много разных интересных слов.
Сервер баз данных
Сама идея сервера баз данных и СУБД в виде отдельной программы появилось по совершенно очевидным причинам. Базы данных мгновенно стали МНОГОПОЛЬЗОВАТЕЛЬСКИМИ. Данные нужны всем и возможность одновременного доступа к ним является очевидной. Проблема базы данных в виде обычного файла заключается в том, что к этому файлу будет обращаться сарзу много программ, каждая из которых захочет внести изменения или получить данные. Организовать такой доступ на уровне файловой системы — по сути, невыполнимая задача.
Во-первых — файл должен быть доступен всем пользователям, что требует перекачку данных по сети и хранение этого файла где-то на сетевом диске. Большие объемы данных по сети (пусть даже с высокой скоростью) — кроме слова “отвратительно” у меня ничего не приходит на ум.
Во-вторых — попытка одновременной записи в файл несколькими программами обречена на провал. Для организации такого доступа обычной файловой системы явно не достаточно.
В-третьих — организация прав доступа к тем или иным данным тоже становится непосильной задачей.
В-четвертых — надо “разруливать” конфликты при одновременном доступе к одним и тем же данным.
После небольшого анализа, кроме этих вопросов, можно увидеть еще немалое количество проблем, которые надо решить при мультипользовательском доступе к данным.
В итоге было принято (и реализовано) вполне здравое решение — написать специальную программу, которая имеет несколько названий — Система Управления Базами Данных (СУБД), сервер баз данных и т.д. Я буду называть ее СУБД.
Суть и цель этой программы — организовать централизованный доступ к данным. Т.е. все запросы на получение или изменение данных от клиентских приложений (клинетов) посылаются (обычно по сети и по протоколу TCP/IP) именно в эту программу. И уже эта программа будет заниматься всеми вышеупомянутыми проблемами:
В итоге мы получаем достаточно ясную архитектуру — есть СУБД, которая сосредоточена на работе с данными и есть клиенты, которые могут посылать запросы к СУБД.
При работе с СУБД клиенты должны решить достаточно четкие задачи:
SQL базы данных
JDBC — Java Database Connectivity — архитектура
Если попробовать определить JDBC простыми словами, то JDBC представляет собой описание интерфейсов и некоторых классов, которые позволяют работать с базами данных из Java. Еще раз: JDBC — это набор интерфейсов (и классов), которые позволяют работать с базами данных.
И вот с этого момента я попробую написать более сложное и в тоже время более четкое описание архитектуры JDBC. Главным принципом архитектуры является унифицированный (универсальный, стандартный) способ общения с разными базами данных. Т.е. с точки зрения приложения на Java общение с Oracle или PostgreSQL не должно отличаться. По возможности совсем не должно отличаться.
Сами SQL-запросы могут отличаться за счет разного набора функций для дат, строк и других. Но это уже строка запроса другая, а алгоритм и набор команд для доставки запроса на SQL-сервер и получение данных от SQL-сервера отличаться не должны.
Думаю, что вы уже догадались — типичный полиморфизм через интерфейсы. Именно на этом и строится архитектура JDBC. Смотрим рисунок.
Как следует из рисунка, приложение работает с абстракцией JDBC в виде набора интерфейсов. А вот реализация для каждого типа СУБД используется своя. Эта реализация называется “JDBC-драйвер”. Для каждого типа СУБД используется свой JDBC-драйвер — для Oracle свой, для MySQL — свой. Как приложение выбирает, какой надо использовать, мы увидим чуть позже.
Что важно понять сейчас — система JDBC позволяет загрузить JDBC-драйвер для конкретной СУБД и единообразно использовать компоненты этого драйвера за счет того, что мы к этим компонентам обращаемся не напрямую, а через интерфейсы.
Т.е. наше приложение в принципе не различает, обращается оно к Oracle или PostgreSQL — все обращения идут через стандартные интерфейсы, за которыми “прячется” реализация.
Пока я предлагаю отметить несколько важных интерфейсов, которые мы будем рассматривать позже, но мне бы хотелось, чтобы у вас этот список уже был, чтобы вы могли по мере прочтения отмечать — “да, вот он важный интерфейс/класс и я теперь знаю, куда он встраивается”. Вот они:
Теперь давайте рассмотрим несложный пример и поймем, как работает JDBC.
JDBC — пример соединения и простого вызова
Попробуем посмотреть на несложном примере, как используется JDBC-драйвер. В нем же мы познакомимся с некоторыми важными интерфейсами и классами.
Предварительно нам необходимо загрузить JDBC-драйвер для PostgreSQL. На данный момент это можно сделать со страницы PostgreSQL JDBC Download
Если вы не нашли эту страницу, то просто наберите в поисковике “PostgreSQL JDBC download” и в первых же строках найдете нужную страницу.
Т.к. я пишу эти статьи для JDK 1.7 и 1.8, то я выбрал строку “JDBC41 Postgresql Driver, Version 9.4-1208” — может через пару-тройку лет это будет уже не так.
Если вы выполнили SQL-скрипт из раздела Установка PostgreSQL, который создавал таблицу JC_CONTACT и вставил туда пару строк, то эта программа позволит вам “вытащить” эти данные и показать их на экране. Это конечно же очень простая программа, но на ней мы сможем посмотреть очень важные моменты. Итак, вот код:
Для запуска этой програмы необходимо подключить JDBC-драйвер для PostgreSQL. Прочитайте раздел Что такое JAR-файлы для того, чтобы подключить нужный JAR с JDBC-драйвером к проекту в NetBeans.
Для запуска нашей программы из командной строки достаточно собрать этот код (причем здесь не надо подключать JAR на этапе компиляции — только на момент запуска).
Итак, команда для сборки:
И теперь команда для запуска:
Для запуска проекта в NetBeans предлагаю вам самостоятельно разобраться, как подключить JAR-файл — пример этого указан в статье Что такое JAR-файлы
Начнем разбор нашей программы с самого начала. Итак, в чем же заключается набор вызовов для создания соединения с базой
Вызов Class.forName() мы уже встречали, когда разговаривали о рефлексии. Если вы этого не сделали — обязательно прочитайте, иначе многое будет непонятно. Так вот наш вызов загружает один из ключевых классов JDBC, который реализует очень важный интерфейс java.sql.Driver. Почему этот класс так важен, мы разберем чуть ниже.
Следующим важным вызовом явлется DriverManager.getConnection(url, login, password);.
Думаю, что параметры login и password достаточно оччевидны — это логин и пароль для подключения к СУБД. А вот первый параметр — url надо рассмотреть подробно.
Параметр url является строкой и я люблю его разбивать на две части. Первая часть jdbc:postgresql: позволяет идентифицировать, к какому типу СУБД вы подключаетесь — Oracle, MySQL, PostgreSQL, IBM DB2, MS SQL Server. В нашем случае тип базы данных — PostgreSQL.
Вторая часть — //localhost:5432/contactdb — определяет конкретный экземпляр выбранной базы данных. Т.е. если первая часть url указывает, что мы хотим работать с PostgreSQL, то вторая часть указывает на каком хосте и на каком порту (опять вспоминаем основы TCP/IP) работает конкретный экземпляр PostgreSQL. Еще раз — первая часть поределяет только тип, вторая часть — параметры оединения с конкретным экземпляром СУБД.
Как вы можете видеть, вторая часть включает помимо IP-адреса и порта (localhost:3306) включает имя базы данных, с которой вы будете соединяться.
Руководство по Создание веб-приложения Java с использованием Azure Cosmos DB и API SQL
ПРИМЕНИМО К: API SQL
В этом руководстве по разработке веб-приложения Java показано, как использовать службу Microsoft Azure Cosmos DB для хранения данных и обеспечения доступа к ним из приложения Java, размещенного в Azure при помощи функции «Веб-приложения службы приложений». В этой статье вы узнаете следующее:
В данном руководстве рассказывается о том, как создать веб-приложение для управления задачами, с помощью которого можно создавать и извлекать задачи, а также помечать их как завершенные, как показано на рисунке ниже. Каждая задача из списка ToDo будет храниться в виде документов JSON в службе Azure Cosmos DB.
В данном учебнике по разработке приложения предполагается, что у вас имеется некоторый опыт использования Java. Если вы никогда не работали с Java или необходимыми инструментами, мы рекомендуем скачать полный учебный проект todo с портала GitHub и создать его, следуя инструкциям, приведенным в конце этой статьи. После создания ознакомьтесь со статьей, чтобы разобраться в коде этого проекта.
Необходимые условия для изучения этого учебника по разработке веб-приложения Java
Для работы с этим учебником необходимы:
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
При первой установке этих средств воспользуйтесь пошаговыми инструкциями, представленными в разделе «Быстрый запуск» статьи Tutorial: Installing TomCat7 and Using it with Eclipse (Руководство по установке TomCat7 и его использованию с Eclipse) на сайте coreservlets.com.
Создание учетной записи Azure Cosmos DB
Давайте сначала создадим учетную запись Azure Cosmos DB. Если у вас уже есть учетная запись или вы используете эмулятор Azure Cosmos DB для работы с этим руководством, можно перейти к разделу Шаг 2. Создание приложения Java JSP.
На домашней странице или в меню портала Azure выберите Создать ресурс.
На странице Создание найдите и выберите Azure Cosmos DB.
На странице Azure Cosmos DB выберите Создать.
На странице создания учетной записи Azure Cosmos DB введите основные параметры для новой учетной записи Azure Cosmos.
Параметр | Значение | Описание |
---|---|---|
Подписка | имя подписки; | Выберите подписку Azure, которую нужно использовать для этой учетной записи Azure Cosmos. |
Группа ресурсов | Имя группы ресурсов | Выберите группу ресурсов или Создать, затем введите уникальное имя для новой группы ресурсов. |
Имя учетной записи | Уникальное имя | Введите имя для идентификации учетной записи Azure Cosmos. Так как элемент documents.azure.com добавляется к указанному вами имени для создания URI, используйте уникальное имя. Имя может содержать только строчные буквы, цифры и знак дефиса (-). Длина — от 3 до 44 знаков. |
API | Тип учетной записи, которую нужно создать. | Выберите Core (SQL) для создания базы данных документов и запроса с использованием синтаксиса SQL. API определяет тип учетной записи, которую нужно создать. Azure Cosmos DB предоставляет пять API: Core (SQL) и MongoDB для данных документа, Gremlin для данных графа, таблица Azure и Cassandra. Сейчас для каждого API требуется создавать отдельную учетную запись. Дополнительные сведения об API SQL |
Расположение | Ближайший к пользователям регион | Выберите географическое расположение для размещения учетной записи Azure Cosmos DB. Используйте ближайшее к пользователям расположение, чтобы предоставить им максимально быстрый доступ к данным. |
Режим емкости | «Подготовленная пропускная способность» или «Бессерверный» | Выберите Подготовленная пропускная способность, чтобы создать учетную запись в режиме подготовленной пропускной способности. Выберите Бессерверный, чтобы создать учетную запись в режиме Бессерверный. |
Применение скидки на основе категории «Бесплатный» для Azure Cosmos DB | Применить или не применять | В категории «Бесплатный» Azure Cosmos DB для учетной записи бесплатно предоставляются первые 1000 единиц запросов в секунду и 25 ГБ свободного места. Ознакомьтесь с дополнительными сведениями о категории «Бесплатный». |
Вы можете использовать не более одной учетной записи Azure Cosmos DB категории «Бесплатный» на подписку Azure. При создании учетной записи нужно зарегистрироваться. Если параметр подачи заявки на скидку на основе категории «Бесплатный» не отображается, это означает, что в подписке уже включена другая учетная запись категории «Бесплатный».
На вкладке Глобальное распределение настройте следующие сведения. При работе с этим кратким руководством можно оставить значения по умолчанию.
Параметр | Значение | Описание |
---|---|---|
Геоизбыточность | Отключить | Включает или отключает глобальное распределение в вашей учетной записи, связывая ваш регион с парным регионом. В дальнейшем в учетную запись можно добавить дополнительные регионы. |
Операции записи с поддержкой нескольких регионов | Отключить | Поддержка записи в несколько регионов позволяет использовать подготовленную пропускную способность для баз данных и контейнеров по всему миру. |
Следующие параметры недоступны, если вы выбрали значение Бессерверный для параметра Режим емкости:
При необходимости можно настроить дополнительные сведения на следующих вкладках.
Выберите Review + create (Просмотреть и создать).
Проверьте параметры учетной записи, а затем нажмите кнопку Создать. Создание учетной записи занимает несколько минут. Дождитесь, пока на странице портала появится сообщение Развертывание выполнено.
Выберите Перейти к ресурсу, чтобы перейти на страницу учетной записи Azure Cosmos DB.
Перейдите на страницу учетной записи Azure Cosmos DB и нажмите на кнопку Ключи. Скопируйте значения, которые понадобятся в создаваемом веб-приложении.
Создание приложения Java JSP
Для создания приложения JSP:
Сначала необходимо создать проект Java. В меню Eclipse выберите File (Файл), щелкните New (Создать), а затем выберите Dynamic Web Project (Динамический веб-проект). Если элемента Dynamic Web Project (Динамический веб-проект) нет в списке доступных проектов, откройте меню File (Файл), щелкните пункт New (Создать), а затем выберите Project (Проект), разверните список Web (Интернет), выберите Dynamic Web Project (Динамический веб-проект) и нажмите кнопку Next (Далее).
Введите имя проекта в соответствующем поле и в раскрывающемся меню Target Runtime (Целевая среда выполнения). Если необходимо, выберите значение (например, Apache Tomcat v7.0), а затем нажмите кнопку Finish (Готово). Выбор целевой среды выполнения позволит вам запустить локальный проект через Eclipse.
В обозревателе проектов Eclipse разверните проект. Щелкните правой кнопкой мыши WebContent, выберите Создать, затем щелкните JSP File (JSP-файл).
В диалоговом окне New JSP File (Новый JSP-файл) укажите для файла имя index.jsp. Сохраните родительскую папку с именем WebContent, как показано на следующей иллюстрации, и нажмите кнопку Next (Далее).
В диалоговом окне Select JSP Template (Выбор шаблона JSP) в целях обучения выберите New JSP File (html) (Новый JSP-файл (html)) и нажмите кнопку Finish (Готово).
Сохраните файл index.jsp.
Если вы задали целевую среду выполнения в рамках шага 2, можете щелкнуть Project (Проект), а затем Run (Запуск) для локального запуска приложения JSP:
Установка пакета Java SDK для SQL
Самый простой способ извлечь данные из пакета Java SDK для SQL и его зависимости — использовать Apache Maven. Для этого необходимо преобразовать проект в проект Maven, выполнив приведенные ниже действия.
Щелкните правой кнопкой мыши проект в обозревателе проектов, выберите Configure (Настроить) и щелкните Convert to Maven Project (Преобразовать в проект Maven).
В окне Create new POM (Создать новый POM) примите параметры по умолчанию и нажмите кнопку Finish (Готово).
В обозревателе проектов откройте файл pom.xml.
На вкладке Dependencies (Зависимости) в соответствующей колонке щелкните Add (Добавить).
В окне Select Dependency (Выбор зависимости) выполните следующие действия.
Либо можно добавить зависимость XML для идентификаторов группы и артефакта непосредственно в файл pom.xml:
Нажмите кнопку OK, и Maven установит пакет Java SDK для SQL или сохранит файл pom.xml.
Использование службы Azure Cosmos DB в приложении Java
Теперь мы добавим в веб-приложение модели, представления и контроллеры.
Добавление модели
Сначала определим модель в новом файле TodoItem.java. Класс TodoItem определяет схему элемента вместе с методами получения и задания:
Добавление классов объекта доступа к данным (DAO)
Создайте объект доступа к данным (DAO) для абстрагирования сохранения элементов ToDo в Azure Cosmos DB. Для сохранения элементов ToDo в коллекции клиент должен знать, какие базы данных и коллекции необходимо связать (с помощью самостоятельных ссылок). Как правило, лучше всего кэшировать базы данных и коллекции, если это возможно для того, чтобы избежать дополнительных обращений к базе данных.
Создайте файл TodoDao.java и добавьте класс TodoDao для создания, обновления, чтения и удаления элементов ToDo:
Добавление контроллера
Добавьте в приложение контроллер TodoItemController. В этом проекте вы используете проект Lombok для создания конструктора, получателя, задания и построителя. Кроме того, можно написать следующий код вручную либо создать его в IDE.
Создание сервлета
Далее создайте сервлет, чтобы перенаправлять запросы HTTP к контроллеру. Создайте файл ApiServlet.java и определите в нем приведенный ниже код.
Подключение другой части приложения Java
Теперь нам необходимо создать пользовательский интерфейс и привязать его к нашему объекту DAO.
Вам потребуется пользовательский веб-интерфейс, который будет отображаться для пользователя. Повторно напишем файл index.jsp, созданный ранее, использовав следующий код:
Наконец, запишем несколько сценариев Javascript на стороне клиента, чтобы связать пользовательский веб-интерфейс и сервлет.
Теперь осталось протестировать приложение. Запустите приложение локально и добавьте несколько элементов Todo, заполнив имя элемента и категории и нажав кнопку Add Task(Добавить задачу). После появления элемента вы можете проверить его завершение, отметив флажком и щелкнув команду Обновить задачи.
Развертывание приложения Java на веб-сайтах Azure
Веб-сайты Azure упрощают развертывание приложений Java с помощью простого экспорта приложения в виде WAR-файла либо с помощью загрузки через систему управления версиями (например, GIT) или через клиент FTP.
Чтобы экспортировать приложение в виде WAR-файла, щелкните правой кнопкой мыши проект в обозревателе проектов, выберите Export (Экспорт) и щелкните WAR File (WAR-файл).
В окне WAR Export (Экспорт WAR-файла) выполните следующие действия:
Теперь, когда вы создали WAR-файл, можно просто передать его на веб-сайт Azure в каталог webapps. Инструкции по передаче файла см. в статье Добавление приложения Java в веб-приложения службы приложений Azure. После загрузки WAR-файла в каталог веб-приложения среда выполнения обнаруживает, что вы добавили его, и автоматически его загрузит.
Чтобы оценить готовый продукт, перейдите к http://YOUR\_SITE\_NAME.azurewebsites.net/azure-cosmos-java-sample/ и приступайте к добавлению задач.
Получение проекта из GitHub
Установите проект Lombok. Lombok используется для формирования конструкторов, получателей и заданий в проекте. Дважды щелкните загруженный файл lombok.jar для установки или установите его из командной строки.
Если открыта рабочая область Eclipse, закройте ее и запустите снова для загрузки проекта Lombok.
В Eclipse откройте меню File (Файл) и щелкните Import (Импорт).
В окне Import (Импорт) щелкните Git, а затем выберите Projects from Git (Проекты из Git) и нажмите кнопку Next (Далее).
На экране Select Repository Source (Выбрать источник репозитория) щелкните Clone URI (Клон URI).
На экране исходного репозитория Git в поле URI введите https://github.com/Azure-Samples/azure-cosmos-java-sql-api-todo-app, а затем нажмите кнопку Далее.
На экране Branch Selection (Выбор ветви) выберите значение main и нажмите кнопку Next (Далее).
На экране Local Destination (Локальная папка назначения) нажмите кнопку Browse (Обзор), выберите папку, в которую можно копировать репозитории, и нажмите кнопку Next (Далее).
Проверьте, установлен ли на экране Select a wizard to use for importing projects (Выбор мастера для импорта проектов) флажок Import existing projects (Импортировать существующие проекты), и нажмите кнопку Next (Далее).
На экране Import Projects (Импорт проектов) снимите флажок возле проекта DocumentDB и нажмите кнопку Finish (Готово). В проекте DocumentDB содержится пакет Java SDK для Azure Cosmos DB, который будет добавлен в качестве зависимости.
В обозревателе проектов перейдите в расположение azure-cosmos-java-sample\src\com.microsoft.azure.cosmos.sample.dao\DocumentClientFactory.java и замените значения HOST и MASTER_KEY значениями URI и первичного ключа своей учетной записи Azure Cosmos DB, а затем сохраните файл. Дополнительные сведения см. в инструкции Шаг 1. Создание учетной записи базы данных Azure Cosmos.
В обозревателе проектов щелкните правой кнопкой элемент azure-cosmos-java-sample, а затем выберите Build Path (Путь сборки) и щелкните Configure Build Path (Настроить путь сборки).
На экране Java Build Path (Путь сборки Java) в правой области откройте вкладку Libraries (Библиотеки) и щелкните Add External JAR (Добавить внешние JAR-файлы). Перейдите в расположение файла lombok.jar, щелкните Open (Открыть), а затем нажмите кнопку ОК.
Используйте инструкцию из шага 12, то есть снова откройте окно Properties (Свойства), а затем в левой области щелкните Targeted Runtimes (Целевые среды выполнения).
На экране Targeted Runtimes (Целевые среды выполнения) щелкните New (Создать), выберите Apache Tomcat v7.0 и нажмите кнопку ОК.
Используйте инструкцию из шага 12, то есть снова откройте окно Properties (Свойства), а затем в левой области щелкните Project Facets (Аспекты проекта).
На экране Project Facets (Аспекты проекта) выберите Dynamic Web Module (Динамический веб-модуль) и Java, а затем нажмите кнопку ОК.
На вкладке Servers (Серверы) в нижней части экрана щелкните правой кнопкой мыши Tomcat v7.0 Server at localhost (Tomcat v7.0 Server на localhost), а затем нажмите кнопку Add and Remove (Добавить или удалить).
В окне Add and Remove (Добавление и удаление) переместите элемент azure-cosmos-java-sample в поле Configured (Настроено), а затем нажмите кнопку Finish (Готово).
На вкладке Server (Сервер) щелкните правой кнопкой мыши Tomcat v7.0 Server at localhost (Сервер Tomcat версии 7.0 на localhost), а затем нажмите кнопку Restart (Перезапуск).
В браузере перейдите к http://localhost:8080/azure-cosmos-java-sample/ и приступите к добавлению задач в список. Обратите внимание, что в случае изменения заданных по умолчанию значений портов необходимо изменить значение 8080 выбранным вами значением.
Инструкции по развертыванию проекта на веб-сайтах Azure см. в пункте Шаг 6. Развертывание приложений на веб-сайтах Azure.
Дальнейшие действия
Пытаетесь выполнить планирование ресурсов для миграции на Azure Cosmos DB? Можете использовать для этого сведения о существующем кластере базы данных.