Создание приложения Swing Maven с использованием Hibernate - учебный курс по IDE NetBeansВ этом учебном руководстве IDE NetBeans используется для создания приложения Swing Java на основе архетипа Maven. Приложение использует библиотеку Hibernate в качестве слоя сохранения состояния для извлечения POJO (простых объектов Java) из реляционной базы данных. В данном учебном курсе описано, как мастеры в среде IDE могут помочь в создании необходимых полей и добавить зависимости Hibernate в POM. После создания объектов Java и настройки приложения для использования Hibernate создается графический пользовательский интерфейс для поиска и отображения данных. Поддержка Maven полностью интегрирована в IDE NetBeans, а Maven 3 входит в комплект в IDE. Вы можете создавать приложения с помощью набора архетипов Maven или с помощью архетипов в удаленных репозиториях в мастере создания проектов. Браузер репозитория Maven позволяет выполнять обзор локальных и удаленных репозиториев Maven, изучать артефакты и добавлять зависимости проекта к POM проекта. Подробные сведения о создании приложения с использованием Ant приведены в разделе Использование библиотеки Hibernate в приложении Java на базе Swing. Подробные сведения о создании приложения Maven Java EE приведены в разделе Создание приложения уровня предприятия с использованием Maven. Содержание ![]()
Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.
Перед изучением этого учебного курса можно ознакомиться со следующей документацией:
Можно загрузить готовый проект в виде архива ZIP. Создание базы данныхВ этом учебном курсе используется база данных MySQL с названием sakila. Пример базы данных не входит в устанавливаемую в среду IDE, поэтому перед изучением этого учебного курса необходимо создать базу данных. База данных Sakila представляет собой свободно распространяемый пример базы данных MySQL, который можно найти на сайте MySQL. Для создания базы данных "Sakila" можно загрузить и установить подключаемый модуль "Sakila Sample Database" с использованием диспетчера подключаемых модулей. После установки подключаемого модуля можно создать базу данных "Sakila" в окне "Services". База данных "Sakila" будет добавлена к списку баз данных в диалоговом окне "Create MySQL database". Для получения дополнительной информации о настройке среды IDE для работы с MySQL см. учебный курс Подключение к базе данных MySQL.
При нажатии кнопки "Подключиться" узел подключения к базе данных "Sakila" (jdbc:mysql://localhost:3306/sakila [по умолчанию: username]) появится под узлом "Базы данных". При открытом подключении для просмотра данных в базе данных разверните этот узел подключения. Настройка MavenMaven входит в комплект среды IDE и устанавливается вместе с ней, но если это ваш первый проект Maven, следует проверить параметры конфигурации Maven в окне "Параметры".
Примечания.
Просмотр репозиториев MavenАртефакты, используемые Maven для создания всех проектов, сохраняются в локальном репозитории Maven. Если артефакт объявлен как зависимость проекта, он загружается в локальный репозиторий из одного из зарегистрированных удаленных репозиториев. Некоторые известные индексированные репозитории Maven зарегистрированы и включены в браузер репозиториев по умолчанию. Зарегистрированные репозитории содержат большинство общедоступных артефактов, требуемых для создания проекта. Скорее всего, у вас не возникнет необходимости в регистрации дополнительных репозиториев, если ваш проект не содержит артефактов, имеющихся только в ваших личных репозиториях. Можно просмотреть локальные и удаленные репозитории Maven и выполнять мгновенные проверки наличия обновлений в окне 'Службы'. Любой артефакт, имеющийся в вашем локальном или удаленном репозитории можно добавить в качестве зависимости проекта. Можно развернуть узел локального репозитория в окне 'Службы', чтобы увидеть артефакты, которые присутствуют на локальном уровне. Артефакты, приведенные в узле удаленного репозитория, могут быть добавлены в качестве зависимостей проекта, однако не все из них представлены локально. Они добавляются к локальному репозиторию только в том случае, если объявляются в качестве зависимостей проекта. Для обзора и обновления репозиториев Maven выполните следующие шаги.
![]() Когда курсор находится над артефактом, среда IDE отображает всплывающую подсказку с координатами артефакта. Чтобы просмотреть дополнительную информацию об артефакте, дважды щелкните файл JAR артефакта.. Для поиска артефактов, щелкните правой кнопкой узел мыши узел 'Репозитории Maven' в окне 'Службы' и выберите 'Найти'. Дополнительные сведения об управлении зависимостями путями к классам Maven и работе с репозиториями Maven в среде IDE см. в разделе Управление зависимостями в Best Practices for Apache Maven in IDE NetBeans. Примечания для IDE NetBeans 7.1 и более ранних версий среды IDE.
Создание приложения MavenВ это учебном курсе мы создадим простой проект приложения Java Swing под названием DVDStoreAdmin. Проект будет создан на основе одного из включенных в набор архетипов Maven, после чего настройки проекта, определенные по умолчанию, будут изменены. Выбор архетипаМастер создания проектов позволяет создавать проекты Maven с помощью архетипа Maven. Среда IDE включает в себя несколько архетипов для общих типов проекта NetBeans, кроме того, в мастере можно выбрать архетипы из удаленных репозиториев.
После нажатия кнопки "Готово" проект Maven будет создан в среде IDE и открыт в окне "Проекты". Среда IDE автоматически создает класс App.java в пакете com.mycompany.dvdstoreadmin. Вы можете удалить этот класс (App.java), поскольку он не требуется приложению для работы. Примечание. Если это первое создание проекта Maven, нужно будет загрузить необходимые подключаемые модули и артефакты в локальный репозиторий. Это может занять некоторое время. Изменение свойств проектаПри создании проекта Maven с помощью мастера свойства этого проекта основываются на архетипе. В некоторых случаях может возникнуть необходимость изменения свойств, установленных по умолчанию, в соответствии с требованиями системы и проекта. Например, чтобы подтвердить, что в данном проекте уровень исходного кода установлен в 1.5 или выше, поскольку в проекте используются аннтации, выполните следующие действия.
Добавление файлов Hibernate и зависимостейДля добавления поддержки Hibernate необходимо сделать библиотеки Hibernate доступными, объявив необходимые артефакты в качестве зависимостей в POM. В среде IDE содержатся мастеры, упрощающие создание файлов библиотеки Hibernate, которые потребуются в проекте. Мастеры, включенные в среду IDE, могут использоваться для создания файла настройки библиотеки Hibernate и вспомогательного служебного класса. При создании файла настройки Hibernate с помощью мастера среда IDE автоматически обновляет POM для добавления зависимостей Hibernate в проект. Зависимости к проекту можно добавить в окне "Проекты" или путем изменения файла pom.xml. Чтобы добавить зависимости в окне 'Проекты', щелкните правой кнопкой мыши узел 'Зависимости' в окне 'Проекты' и выберите 'Добавить зависимость' во вплывающем меню, чтобы открыть диалоговое окно 'Добавить зависимость'. При добавлении зависимостей среда IDE обновляет POM и загружает в локальный репозиторий все требуемые артефакты, отсутствующие в нем. Для непосредственного изменения pom.xml откройте файл, раскрыв узел "Файлы проекта" в окне "Проекта" и дважды щелкнув pom.xml. Создание файла настройки библиотеки HibernateФайл настройки библиотеки Hibernate (hibernate.cfg.xml) содержит информацию о подключении к базе данных, сопоставлениях ресурсов и других свойствах подключения. При создании файла настройки Hibernate с использованием мастера подключение к базе данных определяется путем выбора из списка подключений, зарегистрированных в среде IDE. В ходе создания файла настройки подробная информация о подключении и сведения о диалекте добавляются автоматически в соответствии с выбранным подключением к базе данных. Среда IDE автоматически изменяет POM, добавляя требуемые зависимости Hibernate. После создания файла настройки можно изменить файл с использованием редактора с несколькими представлениями или внести изменения в код XML непосредственно в редакторе XML.
![]() При нажатии кнопки "Готово" среда IDE открывает файл hibernate.cfg.xml в редакторе. Файл настройки содержит информацию об отдельной базе данных. Если развернуть узел "Зависимости" в окне проекта, можно убедиться, что среда IDE добавила необходимые артефакты Hibernate. Под узлом "Зависимости" среда IDE выводит все прямые и промежуточные зависимости, необходимые для компиляции проекта. Артефакты, являющиеся прямыми зависимостями (зависимостями, определенными в файле POM проекта), отмечены цветными значками JAR. Значок артефакта имеет серый цвет, если артефакт является промежуточной зависимостью (артефакт, являющийся зависимостью одной или нескольких прямых зависимостей). ![]() Для просмотра ведений об артефактах щелкните правой кнопкой мыши JAR и выберите 'Просмотреть сведения об артефактах'. Окно "Artifact Viewer" содержит вкладки, показывающие информацию о выделенных артефактах. Например, на вкладке "Общие" представлены подробные сведения о координатах артефакта и его доступных версиях. На вкладке "График" показано визуальное представление зависимостей выделенного артефакта. ![]() Также можно использовать вкладку "График" для обнаружения и устранения конфликта версий между зависимостями. Изменение файла настройки библиотеки HibernateВ этом упражнении будут изменены свойства по умолчанию, указанные в hibernate.cfg.xml, для включения функции протоколирования отладки для операторов SQL. Данное упражнение не является обязательным.
После запуска приложения появится возможность просмотра запроса SQL, представленного в окне "Output" среды IDE. Создание вспомогательного файла HibernateUtil.javaДля использования библиотеки Hibernate необходимо создать вспомогательный класс для обработки запуска и обращения к SessionFactory библиотеки Hibernate для получения объекта "Session". Класс обеспечивает вызов метода configure() библиотеки Hibernate, загрузку файла настройки hibernate.cfg.xml и последующую сборку SessionFactory для получения объекта "Session". В этом разделе для создания вспомогательного класса HibernateUtil.java используется мастер создания файла.
![]() После нажатия кнопки "Finish" в редакторе откроется класс HibernateUtil.java. Файл можно закрыть, т.к. необходимость в его изменении отсутствует. Создание файлов сопоставления библиотеки Hibernate и классов JavaВ этом руководстве для отображения данных в таблице "ACTOR" базы данных используется простой старый объект Java (POJO) Actor.java. Класс указывает поля для столбцов в таблицах и использует простые методы установки и получения значений для извлечения и записи данных. Для сопоставления Actor.java с таблицей "ACTOR" можно использовать файл сопоставления библиотеки Hibernate или аннотации в классе. Мастер обратного проектирования, файлы отображения библиотеки Hibernate и объекты POJO могут использоваться в мастере "Database" для создания нескольких объектов POJO и файлов отображения на основе выбранных таблиц базы данных. Кроме того, в среде IDE можно использовать мастеры для упрощения создания отдельных объектов POJO и файлов сопоставления "с нуля". Примечание. При создании нескольких таблиц целесообразно использовать мастер. Однако в этом учебном курсе будет создан только один объект POJO и один файл отображения, поэтому можно создать эти файлы по отдельности. Действия по созданию объектов POJO и файлов сопоставления по отдельности приведены в конце данного учебного курса. Создание файла обратного проектированияДля использования объектов POJO и файлов сопоставления в мастере "База данных" необходимо сначала создать файл обратного проектирования reveng.xml в папке src/main/resources, в которой был создан файл hibernate.cfg.xml.
Мастер создает файл обратного проектирования hibernate.reveng.xml. Файл обратного проектирования можно закрыть, поскольку его изменение не требуется. Примечание. Для этого проекта требуется библиотека jar коннектора MySQL (mysql-connector-jar-5.1.13.jar, например). Если подходящий JAR не указан как зависимость проекта в узле 'Зависимости', можно добавить зависимость, щелкнув правой кнопкой узел мыши узел 'Зависимости' и выбрав 'Добавить зависимость'. Создание файлов сопоставления библиотеки Hibernate и объектов POJO на основе базы данныхМастер создания файлов сопоставления библиотеки Hibernate и объектов POJO на основе базы данных создает файлы на основе таблиц, содержащихся в базе данных. При использовании этого мастера среда IDE создает объекты POJO и файлы отображения на основе таблиц базы данных, указанных в hibernate.reveng.xml, а затем добавляет записи отображения в файл hibernate.cfg.xml. При применении мастера можно выбрать файлы, которые должны быть созданы в среде IDE (например, только объекты POJO), и установить свойства создания кода (например, создание кода, использующего аннотации EJB 3).
![]() После нажатия кнопки "Готово" в среде IDE создается объект POJO Actor.java со всеми необходимыми полями, сохраняемый в папке src/main/java/sakila/entity. Кроме того, в среде IDE создается файл сопоставления библиотеки Hibernate в папке src/main/resources/sakila/entity, а запись сопоставления добавляется в файл hibernate.cfg.xml. Теперь при наличии объектов POJO и необходимых файлов, связанных с библиотекой Hibernate для приложения можно создать простой внешний графический интерфейс пользователя на Java. Также необходимо создать, а затем добавить запрос HQL, обеспечивающий извлечение данных из базы данных. В рамках этого процесса для построения и тестирования запроса будет использован редактор HQL. Создание графического интерфейса пользователя приложенияВ этом упражнении будет создана простая форма JFrame с определенными полями для ввода и отображения данных. Также будет добавлена кнопка, инициирующая запрос к базе данных для извлечения данных. При отсутствии знаний об использовании GUI Builder для создания форм можно ознакомиться с учебным курсом Введение в разработку графического интерфейса. Создание формы Jframe
После нажатия кнопки "Готово" в среде IDE создается класс, а в представлении "Дизайн" редактора открывается форма JFrame. Добавление элементов к формеТеперь необходимо добавить элементы пользовательского интерфейса к форме. При открытии формы в представлении "Проект" в правой части рабочей области среды IDE появляется элемент "Палитра". Для добавления элемента к форме перетащите элемент с палитры в область формы. После добавления элемента к форме необходимо изменить значение по умолчанию свойства "Variable Name" для этого элемента.
В режиме проектирования внешний вид формы выглядит так, как показано на следующем рисунке. ![]() На этом этапе уже создана форма, и теперь необходимо создать код, обеспечивающий присваивание событий элементам формы. В следующем упражнении будут созданы запросы для извлечения данных на основе языка Hibernate Query Language. После создания запросов к форме будут добавлены методы, обеспечивающие вызов соответствующего запроса при нажатии кнопки "Query". Создание запроса в редакторе запросов HQL Query EditorВ среде IDE создание и тестирование запросов на основе языка Hibernate Query Language (HQL) может осуществляться с использованием редактора запросов HQL Query Editor. После ввода запроса в редакторе отображается эквивалентный (переведенный) запрос SQL. При нажатии кнопки "Run HQL Query" на панели инструментов в среде IDE запрос выполняется, а результаты отображаются в нижней области редактора. В этом упражнении редактор HQL Editor применяется для создания простых запросов HQL, позволяющих извлекать список подробных данных актеров на основе соответствия имени или фамилии. Перед добавлением запроса к классу редактор HQL Query Editor должен использоваться для проверки правильной работы подключения и корректности результатов запроса. Перед выполнением запроса необходимо скомпилировать приложение.
Тестирование запросов показывает, что запросы возвращают требуемые результаты. Теперь необходимо внедрить запросы в приложение и обеспечить вызов соответствующего запроса путем нажатия кнопки "Query" в форме. Добавление запроса к формеТеперь необходимо изменить DVDStoreAdmin.java для добавления строк запроса и создания методов, позволяющих формировать и вызывать запрос, включающий входные переменные. Также требуется изменить обработчик событий нажатия кнопок для вызова соответствующего запроса и добавить метод, обеспечивающий отображение результатов запроса в таблице.
После сохранения формы можно запустить проект. Запуск проекта MavenПосле завершения написания программы вы можете создать проект и запустить приложение. При создании проекта Maven в среде IDE, Maven считывает POM проекта для идентификации его зависимостей. Все артефакты, определенные как зависимости, должны при этом находиться в локальном репозитории Maven. Если требуемый артефакт отсутствует в локальном репозитории, то перед попыткой создания и запуска проекта Maven выполнит его поиск в удаленном репозитории. После создания проекта Maven установит сгенерированный двоичный файл в качестве артефакта в локальном репозитории. Примечания.
Чтобы скомпилировать и запустить приложение выполните следующие действия.
При вызове в среде IDE в проекте Maven операции Run параметры Maven выполняются в среде IDE совместно с операцией Run. Среда IDE имеет цели по умолчанию, связанные с операциями IDE, соответствующими упаковке проекта. Связанные с операцией Run цели можно просмотреть на панели "Действия" окна "Свойства" проекта. ![]() Можно настроить привязку целей к операциям в панели "Действия" окна проекта "Свойства". Форма графического интерфейса открывается при запуске приложения. Введите информацию в строке поиска для текстовых полей "First Name" или "Last Name" и нажмите кнопку "Query" для поиска актера и просмотра подробных данных. ![]() При вызове окна "Output" в среде IDE можно просмотреть запрос SQL, инициировавший извлечение представленных результатов. Загрузка проекта решенияРешение для данного учебного курса в виде проекта можно загрузить несколькими способами.
Создание объектов POJO и файлов сопоставления по отдельностиПоскольку POJO представляет собой простой класс Java, вы можете использовать мастер создания классов Java, чтобы создать класс, а затем изменить класс в редакторе исходного кода, чтобы добавить необходимые поля и методы получения и установки. После создания объекта POJO мастер также можно использовать для создания файла сопоставления библиотеки Hibernate, обеспечивающего сопоставления класса с таблицей, и добавления информации о сопоставлении в файл hibernate.cfg.xml. При создании файла сопоставления "с нуля" необходимо сопоставить поля и столбцы в редакторе XML. Примечание. Это упражнение является необязательным и описывает создание POJO и файла сопоставления, созданных с помощью файлов сопоставления библиотеки Hibernate и POJO из мастера баз данных.
После создания объекта POJO для таблицы необходимо создать файл сопоставления библиотеки Hibernate для класса Actor.java.
Создание объектов POJO и файлов сопоставления библиотеки Hibernate может эффективно использоваться для дальнейшей настройки приложения. Дополнительные сведенияДля получения дополнительных сведений о создании приложений с графическим интерфейсом пользователя на базе Swing см. следующие учебные курсы. |
Documentation |