Использование библиотеки Hibernate в приложении Java на базе Swing
This tutorial needs a review. You can open a JIRA issue, or edit it in GitHub following these contribution guidelines. |
- Создание базы данных
- Создание проекта приложения Java на базе Swing
- Добавление поддержки библиотеки Hibernate к проекту
- Создание файлов сопоставления библиотеки Hibernate и классов Java
- Создание графического интерфейса пользователя приложения
- Создание запроса в редакторе запросов HQL Query Editor
- Добавление запроса к форме
- Выполнение проекта
- Создание объектов POJO и файлов сопоставления по отдельности
- Дополнительные сведения
В этом учебном руководстве IDE NetBeans используется для создания и развертывания приложения Swing Java, в котором отображаются данные из базы данных. Приложение использует библиотеку Hibernate в качестве слоя сохранения состояния для извлечения POJO (простых объектов Java) из реляционной базы данных.
Библиотека Hibernate предоставляет средства для объектно-реляционного сопоставления (ORM). В руководстве демонстрируется поддержка библиотеки Hibernate в среде IDE и использование мастеров для создания необходимых файлов Hibernate. После создания объектов Java и настройки приложения для использования Hibernate создается графический пользовательский интерфейс для поиска и отображения данных.
Приложение, создаваемое в этом курсе, представляет собой средство администрирования, дополняющее веб-приложение "DVD Store". В данном руководстве описывается создание приложения, позволяющего запрашивать подробные данные актера на основе соответствия имени или фамилии. При необходимости приложение можно расширить путем добавления функциональных возможностей запроса подробных данных о фильме, а также добавления/обновления/удаления объектов. В рамках руководства используется СУБД MySQL и база данных "Sakila", однако в приложениях Hibernate допускается использование любого поддерживаемого сервера базы данных. База данных "Sakila" представляет собой типовую базу данных, которая может быть загружена с сайта MySQL. Информация о настройке базы данных "Sakila" приведена в следующих разделах.
Перед изучением этого учебного курса можно ознакомиться со следующей документацией:
-
Документация по библиотеке Hibernate по адресу hibernate.org
-
Учебный курс Подключение к базе данных MySQL.
Сведения о создании этого приложения с помощью Maven см. в разделе Создание приложения Maven Swing с помощью Hibernate.

Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.
Программное обеспечение или материал | Требуемая версия |
---|---|
7.2, 7.3, 7.4, 8.0, Java |
|
версия 7 или 8 |
|
версия 5.x |
|
База данных "Sakila" |
подключаемый модуль, который можно получить в центре обновления |
Можно загрузить готовый проект в виде архива ZIP.
Создание базы данных
В этом учебном курсе используется база данных MySQL с названием sakila
. Пример базы данных не входит в устанавливаемую в среду IDE, поэтому перед изучением этого учебного курса необходимо создать базу данных.
База данных "Sakila" представляет собой свободно распространяемый пример базы данных, который можно загрузить с сайта MySQL. Для создания базы данных "Sakila" можно загрузить и установить подключаемый модуль "Sakila Sample Database" с использованием диспетчера подключаемых модулей. После установки подключаемого модуля можно создать базу данных "Sakila" в окне "Services". База данных "Sakila" будет добавлена к списку баз данных в диалоговом окне "Create MySQL database".
Для получения дополнительной информации о настройке среды IDE для работы с MySQL см. учебный курс Подключение к базе данных MySQL.
-
Откройте диспетчер подключаемых модулей и установите подключаемый модуль "Sakila Sample Database".
-
После установки подключаемого модуля, запустите сервера MySQL базы данных путем расширения узла 'Базы данных' в окне 'Службы', щелкните правой кнопкой мыши узел MySQL Server и выберите 'Запустить'.
-
Щелкните правой кнопкой мыши узел сервера MySQL и выберите Create Database ("Создать базу данных").
-
Выберите базу данных "Sakila"из раскрывающегося списка "New Database Name" в диалоговом окне "Create MySQL Database". Нажмите кнопку "ОК".

При нажатии кнопки "OK" узел "Sakila" появится под узлом "MySQL Server".
-
Щелкните правой кнопкой мыши узел "Sakila" и выберите "Connect".
После нажатия кнопки "Connect a database" под узлом "Databases" отобразится узел подключения к базе данных "Sakila" ( jdbc:mysql://localhost:3306/sakila [username on Default]
). При открытом подключении для просмотра данных в базе данных разверните этот узел подключения.
Создание проекта приложения Java на базе Swing
В этом упражнении будет создан простой проект приложения Java на базе Swing с именем "DVDStoreAdmin".
-
Выберите команду "Файл" > "Создать проект" (CTRL+SHIFT+N). Выберите приложение Java из категории Java и нажмите "Next".
-
Введите DVDStoreAdmin в качестве имени проекта и укажите местоположение проекта.
-
Снимите флажок "Использовать отдельную папку", если он установлен. В рамках этого руководства копирование библиотек проекта в выделенную папку лишено смысла, поскольку совместное использование библиотек с другими пользователями не потребуется.
-
Снимите флажок "Create Main Class". Нажмите кнопку "Завершить".
-
При нажатии кнопки "Finish" в среде IDE будет создан проект приложения Java. В проекте нет главного класса. Следует создать форму и установить ее в качестве главного класса.
Добавление поддержки библиотеки Hibernate к проекту
Для добавления поддержки библиотеки Hibernate к проекту J2SE необходимо добавить библиотеку Hibernate в проект. Библиотека Hibernate входит в состав IDE и может быть добавлена к любому проекту. Для этого щелкните правой кнопкой мыши узел 'Библиотеки' в окне 'Проекты', выберите 'Добавить библиотеку', а затем выберите библиотеку Hibernate в диалоговом окне 'Добавить библиотеку'.
В среде IDE содержатся мастеры, упрощающие создание файлов библиотеки Hibernate, которые потребуются в проекте. Мастеры, включенные в среду IDE, могут использоваться для создания файла настройки библиотеки Hibernate и вспомогательного служебного класса. Если файл настройки библиотеки Hibernate создан с использованием мастера, библиотеки Hibernate автоматически добавляются к проекту.
Создание файла настройки библиотеки Hibernate
Файл настройки библиотеки Hibernate ( hibernate.cfg.xml
) содержит информацию о подключении к базе данных, сопоставлениях ресурсов и других свойствах подключения. При создании файла настройки Hibernate с использованием мастера подключение к базе данных определяется путем выбора из списка подключений, зарегистрированных в среде IDE. В ходе создания файла настройки подробная информация о подключении и сведения о диалекте добавляются автоматически в соответствии с выбранным подключением к базе данных. В среде IDE библиотека Hibernate также автоматически добавляется в путь класса проекта. После создания файла настройки можно изменить файл с использованием редактора с несколькими представлениями или внести изменения в код XML непосредственно в редакторе XML.
-
Щелкните правой кнопкой мыши узел "Source Packages" в окне "Projects" и выберите "New > Other" для открытия мастера "New File".
-
Выберите элемент "Hibernate Configuration Wizard" из категории "Hibernate". Нажмите кнопку "Далее".
-
Оставьте значения по умолчанию на панели "Имя и местоположение" (создается файл в каталоге
src
). Нажмите кнопку "Далее". -
Выберите подключение "sakila" из раскрывающегося списка "Database Connection". Нажмите кнопку "Завершить".

При нажатии кнопки "Finish" файл hibernate.cfg.xml
откроется в редакторе исходного кода в среде IDE. В среде IDE файл настройки создается в корне контекстного пути к классам приложения (в окне "Files", "WEB-INF/classes"). В окне 'Проекты' файл находится в исходном пакете <пакет, заданный по умолчанию>
. Файл настройки содержит информацию об отдельной базе данных. Если планируется подключение к нескольким базам данных, в проекте можно создать несколько файлов настройки (по одному для каждого сервера базы данных), но по умолчанию во вспомогательном служебном классе будет использоваться файл hibernate.cfg.xml
, расположенный в корневом каталоге.
После разворачивания узла "Libraries" в окне "Projects" видно, что к проекту добавлены требуемые архивы JAR библиотеки Hibernate и архив JAR соединителя MySQL.

Примечание. В среду NetBeans IDE 8.0 входят библиотеки Hibernate 4. Старые версии IDE, связанные с Hibernate 3.
Изменение файла настройки библиотеки Hibernate
В этом упражнении будут изменены свойства по умолчанию, указанные в hibernate.cfg.xml
, для включения функции протоколирования отладки для операторов SQL.
-
Откройте
hibernate.cfg.xml
на вкладке "Проект". Для открытия файла можно развернуть узел "Configuration Files" в окне "Projects" и дважды щелкнутьhibernate.cfg.xml
. -
Разверните узел "Configuration Properties" в области "Optional Properties".
-
Нажмите кнопку "Add" для открытия диалогового окна "Add Hibernate Property".
-
В диалоговом окне выберите свойство
hibernate.show_sql
и установите значениеtrue
. Нажмите кнопку "ОК". Это приведет ко включению протоколирования отладки операторов SQL.

-
Щелкните "Добавить" в узле "Различные свойства" и выберите
hibernate.query.factory_class
в раскрывающемся списке "Имя свойства". -
Введите org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory в качестве значения свойства.
Класс 'translator factory' используется в библиотеке Hibernate 4, связанной с IDE.
Нажмите кнопку "ОК".

При использовании NetBeans IDE 7.4 или более ранней версии необходимо выбрать org.hibernate.hql.classic.ClassicQueryTranslatorFactory в качестве значения свойства в диалоговом окне. NetBeans IDE 7.4 и более ранние версии, связанные с библиотекой Hibernate 3.

При выборе вкладки "XML" в редакторе можно просмотреть файл в режиме XML. Файл должен выглядеть следующим образом:
<hibernate-configuration>
<session-factory name="session1">
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/sakila</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">######</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.query.factory_class">org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory</property>
</session-factory>
</hibernate-configuration>
-
Сохраните измененный файл.
После создания формы и настройки ее в качестве основного класса, вы сможете увидеть SQL запросов, выведенные на печать в окне вывода IDE при выполнении проекта.
Создание вспомогательного файла HibernateUtil.java
Для использования библиотеки Hibernate необходимо создать вспомогательный класс для обработки запуска и обращения к SessionFactory
библиотеки Hibernate для получения объекта "Session". Класс обеспечивает вызов метода configure()
библиотеки Hibernate, загрузку файла настройки hibernate.cfg.xml
и последующую сборку SessionFactory
для получения объекта "Session".
В этом разделе для создания вспомогательного класса HibernateUtil.java
используется мастер создания файла.
-
Щелкните правой кнопкой мыши узел "Source Packages" и выберите "New > Other" для открытия мастера "New File".
-
Выберите "Hibernate" из списка "Categories" и "HibernateUtil.java" из списка "File Types". Нажмите кнопку "Далее".

-
Введите HibernateUtil в качестве имени класса и sakila.util в качестве имени пакета. Нажмите кнопку "Завершить".
После нажатия кнопки "Finish" в редакторе откроется класс HibernateUtil.java
. Файл можно закрыть, т.к. необходимость в его изменении отсутствует.
Создание файлов сопоставления библиотеки Hibernate и классов Java
В этом руководстве для отображения данных в таблице "ACTOR" базы данных используется простой старый объект Java (POJO) Actor.java
. Класс указывает поля для столбцов в таблицах и использует простые методы установки и получения значений для извлечения и записи данных. Для сопоставления Actor.java
с таблицей "ACTOR" можно использовать файл сопоставления библиотеки Hibernate или аннотации в классе.
Мастер обратного проектирования, файлы отображения библиотеки Hibernate и объекты POJO могут использоваться в мастере "Database" для создания нескольких объектов POJO и файлов отображения на основе выбранных таблиц базы данных. Кроме того, в среде IDE можно использовать мастеры для упрощения создания отдельных объектов POJO и файлов сопоставления "с нуля".
Примечания.
-
При создании нескольких таблиц целесообразно использовать мастер. Однако в этом учебном курсе будет создан только один объект POJO и один файл отображения, поэтому можно создать эти файлы по отдельности. Действия по созданию объектов POJO и файлов сопоставления по отдельности приведены в конце данного учебного курса.
Создание файла обратного проектирования
Файл обратного проектирования ( hibernate.reveng.xml
) является файлом XML, который можно использовать для изменения настроек по умолчанию, примененных при создании файлов Hibernate из метаданных базы данных, определенной в hibernate.cfg.xml
. Мастер создает файл с основными настройками по умолчанию. Можно изменить файл и явным образом указать используемую схему базы данных, отфильтровать таблицы, которые не следует использовать, а также указать, как типы JDBC сопоставляются с типами Hibernate.
-
Щелкните правой кнопкой мыши узел "Source Packages" и выберите "New > Other" для открытия мастера "New File".
-
В списке "Categories" выберите "Hibernate", а в списке "File Types" выберите "Hibernate Reverse Engineering Wizard". Нажмите кнопку "Далее".
-
Введите имя файла hibernate.reveng.
-
В качестве местоположения оставьте значение по умолчанию *
src
*. Нажмите кнопку "Далее". -
Выберите элемент actor на панели "Available Tables" и нажмите кнопку "Add". Нажмите кнопку "Завершить".
Мастер создает файл обратного проектирования hibernate.reveng.xml
. Файл обратного проектирования можно закрыть, поскольку его изменение не требуется.
Создание файлов сопоставления библиотеки Hibernate и объектов POJO на основе базы данных
Мастер создания файлов сопоставления библиотеки Hibernate и объектов POJO на основе базы данных создает файлы на основе таблиц, содержащихся в базе данных. При использовании этого мастера среда IDE создает объекты POJO и файлы отображения на основе таблиц базы данных, указанных в hibernate.reveng.xml
, а затем добавляет записи отображения в файл hibernate.cfg.xml
. При применении мастера можно выбрать файлы, которые должны быть созданы в среде IDE (например, только объекты POJO), и установить свойства создания кода (например, создание кода, использующего аннотации EJB 3).
-
Щелкните правой кнопкой мыши узел "Source Packages" в окне "Projects" и выберите "New > Other" для открытия мастера "New File".
-
Выберите "Hibernate Mapping Files and POJOs from a Database" в категории "Hibernate". Нажмите кнопку "Далее".
-
Выберите файл
hibernate.cfg.xml
из раскрывающегося списка "Hibernate Configuration File", если он еще не выбран. -
Выберите файл
hibernate.cfg.xml
из раскрывающегося списка "Hibernate Reverse Engineering File", если он еще не выбран. -
Убедитесь в том, что выбраны пункты Domain Code и Hibernate XML Mappings.
-
Введите sakila.entity в качестве имени пакета в поле "Package". Нажмите кнопку "Завершить".

После нажатия кнопки "Finish" в среде IDE создается объект POJO Actor.java
со всеми необходимыми полями и файл сопоставления библиотеки Hibernate; кроме того, в файл hibernate.cfg.xml
добавляется запись сопоставления.
Теперь при наличии объектов POJO и необходимых файлов, связанных с библиотекой Hibernate для приложения можно создать простой внешний графический интерфейс пользователя на Java. Также необходимо создать, а затем добавить запрос HQL, обеспечивающий извлечение данных из базы данных. В рамках этого процесса для построения и тестирования запроса будет использован редактор HQL.
Создание графического интерфейса пользователя приложения
В этом упражнении будет создана простая форма JFrame с определенными полями для ввода и отображения данных. Также будет добавлена кнопка, инициирующая запрос к базе данных для извлечения данных.
При отсутствии знаний об использовании GUI Builder для создания форм можно ознакомиться с учебным курсом Введение в разработку графического интерфейса.
Создание формы Jframe
-
Щелкните правой кнопкой мыши узел проекта в окне "Projects" и выберите "New > Other" для открытия мастера создания файла.
-
Выберите шаблон "JFrame Form" из категории "Swing GUI Forms". Нажмите кнопку "Далее".
-
Введите DVDStoreAdmin в поле "Class Name" и sakila.ui в поле "Package". Нажмите кнопку "Завершить".
После нажатия кнопки "Готово" в среде IDE создается класс, а в представлении "Дизайн" редактора открывается форма JFrame.
Добавление элементов к форме
Теперь необходимо добавить элементы пользовательского интерфейса к форме. При открытии формы в режиме проектирования в редакторе в левой части рабочей области среды IDE появляется палитра. Для добавления элемента к форме перетащите элемент с палитры в область формы. После добавления элемента к форме необходимо изменить значение по умолчанию свойства "Variable Name" для этого элемента.
-
Перетащите элемент "Label" из палитры и измените текст на Actor Profile.
-
Перетащите элемент "Label" с палитры и измените текст на First Name.
-
Перетащите элемент "Text Field", поместите его рядом с меткой "First Name" и удалите текст по умолчанию.
-
Перетащите элемент "Label" с палитры и измените текст на Last Name.
-
Перетащите элемент "Text Field", поместите его рядом с меткой "Last Name" и удалите текст по умолчанию.
-
Перетащите элемент "Button" с палитры и измените текст на Query.
-
Перетащите элемент "Table" с палитры в форму.
-
Измените значения "Variable Name" следующих элементов пользовательского интерфейса в соответствии со значениями, приведенными в следующей таблице.
Вы можете изменить значение 'Имя переменной' для элемента, щелкнув правой кнопкой мыши элемент в представлении конструктора и выбрав 'Изменить имя переменной'. Кроме того, значение "Variable Name" можно изменить непосредственно в окне "Inspector".
Присвоение значений "Variable Name" элементам "Label" не требуется.
Элемент | Имя переменной |
---|---|
Текстовое поле "First Name" |
|
Текстовое поле "Last Name" |
|
Кнопка "Query" |
|
Таблица |
|
-
Сохраните изменения.
В режиме проектирования внешний вид формы выглядит так, как показано на следующем рисунке.

На этом этапе уже создана форма, и теперь необходимо создать код, обеспечивающий присваивание событий элементам формы. В следующем упражнении будут созданы запросы для извлечения данных на основе языка 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 должен использоваться для проверки правильной работы подключения и корректности результатов запроса. Перед выполнением запроса необходимо скомпилировать приложение.
-
Правой кнопкой мыши щелкните узел проекта и выберите команду "Построить".
-
Разверните исходный узел пакета <default package> в окне "Projects".
-
Щелкните правой кнопкой мыши файл
hibernate.cfg.xml
и выберите "Run HQL Query" для открытия редактора HQL Editor. -
Протестируйте подключение путем ввода
from Actor
в редакторе запросов HQL Query Editor. Нажмите кнопку 'Выполнить запрос HQL' () на панели инструментов.
При нажатии кнопки "Run HQL Query" результаты запроса должны отображаться в нижней области редактора запросов HQL Query Editor.

-
Введите следующий запрос в редактор запросов HQL Query Editor и нажмите кнопку "Выполнить запрос HQL" для проверки результатов запроса при вводе значения "PE" в строку поиска.
from Actor a where a.firstName like 'PE%'
Запрос возвращает список подробных данных тех актеров, чьи имена начинаются с символов "PE".
При нажатии кнопки "SQL", размещенной над результатами, на экране должен отобразиться соответствующий эквивалентный запрос SQL.
select actor0_.actor_id as col_0_0_ from sakila.actor actor0_ where (actor0_.first_name like 'PE%' )
-
Откройте новую вкладку редактора HQL Query Editor и введите следующий запрос на панели редактирования. Нажмите кнопку "Run HQL Query".
from Actor a where a.lastName like 'MO%'
Запрос возвращает список подробных данных актеров, чьи фамилии начинаются с символов "МО".
Тестирование запросов показывает, что запросы возвращают требуемые результаты. Теперь необходимо внедрить запросы в приложение и обеспечить вызов соответствующего запроса путем нажатия кнопки "Query" в форме.
Добавление запроса к форме
Теперь необходимо изменить DVDStoreAdmin.java
для добавления строк запроса и создания методов, позволяющих формировать и вызывать запрос, включающий входные переменные. Также требуется изменить обработчик событий нажатия кнопок для вызова соответствующего запроса и добавить метод, обеспечивающий отображение результатов запроса в таблице.
-
Откройте
DVDStoreAdmin.java
и выберите вкладку "Source". -
Добавьте следующие строки запроса (выделенные полужирным шрифтом) к классу.
public DVDStoreAdmin() {
initComponents();
}
*private static String QUERY_BASED_ON_FIRST_NAME="from Actor a where a.firstName like '";
private static String QUERY_BASED_ON_LAST_NAME="from Actor a where a.lastName like '";*
Запросы можно скопировать из вкладок редактора запросов HQL Query Editor в файл, а затем изменить код.
-
Добавьте следующие методы для создания запроса на основе строки со вводимой пользователем информацией.
private void runQueryBasedOnFirstName() {
executeHQLQuery(QUERY_BASED_ON_FIRST_NAME + firstNameTextField.getText() + "%'");
}
private void runQueryBasedOnLastName() {
executeHQLQuery(QUERY_BASED_ON_LAST_NAME + lastNameTextField.getText() + "%'");
}
Эти методы обеспечивают вызов метода с именем executeHQLQuery()
и создание запроса путем объединения строки запроса с информацией пользователя, вводимой в строку поиска.
-
Добавьте метод
executeHQLQuery()
.
private void executeHQLQuery(String hql) {
try {
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Query q = session.createQuery(hql);
List resultList = q.list();
displayResult(resultList);
session.getTransaction().commit();
} catch (HibernateException he) {
he.printStackTrace();
}
}
Метод executeHQLQuery()
обеспечивает вызов библиотеки Hibernate для выполнения выбранного запроса. В этом методе служебный класс HibernateUtil.java
применяется для получения объекта Hibernate "Session".
-
Щелкните правой кнопкой мыши в редакторе и выберите 'Исправить выражения импорта' (Ctrl-Shift-I; ⌘-Shift-I в Mac) для создания операторов импорта для библиотек Hibernate (
org.hibernate.Query
,org.hibernate.Session
) иjava.util.List
. Сохраните изменения. -
Создайте обработчик событий для кнопки "Query", переключившись в режим проектирования и дважды нажав кнопку "Query".
В среде IDE будет создан метод queryButtonActionPerformed
, который затем отобразится в режиме просмотра исходного кода.
-
Измените метод
queryButtonActionPerformed
в режиме просмотра исходного кода путем добавления следующего кода, обеспечивающего выполнение запроса при нажатии кнопки пользователем.
private void queryButtonActionPerformed(java.awt.event.ActionEvent evt) {
*if(!firstNameTextField.getText().trim().equals("")) {
runQueryBasedOnFirstName();
} else if(!lastNameTextField.getText().trim().equals("")) {
runQueryBasedOnLastName();
}*
}
-
Добавьте следующий метод для просмотра результатов в "JTable".
private void displayResult(List resultList) {
Vector<String> tableHeaders = new Vector<String>();
Vector tableData = new Vector();
tableHeaders.add("ActorId");
tableHeaders.add("FirstName");
tableHeaders.add("LastName");
tableHeaders.add("LastUpdated");
for(Object o : resultList) {
Actor actor = (Actor)o;
Vector<Object> oneRow = new Vector<Object>();
oneRow.add(actor.getActorId());
oneRow.add(actor.getFirstName());
oneRow.add(actor.getLastName());
oneRow.add(actor.getLastUpdate());
tableData.add(oneRow);
}
resultTable.setModel(new DefaultTableModel(tableData, tableHeaders));
}
-
Щелкните правой кнопкой мыши в редакторе и выберите 'Исправить выражения импорта' (Ctrl-Shift-I; ⌘-Shift-I в Mac) для создания оператора импорта для
java.util.Vector
иjava.util.List
. Сохраните изменения.
После сохранения формы можно запустить проект.
Выполнение проекта
После завершения создания кода можно запустить приложение. Перед выполнением проекта необходимо указать главный класс приложения в диалоговом окне свойств проекта. Если главный класс не указан, при первом запуске приложения отобразится запрос на его установку.
-
Щелкните правой кнопкой мыши узел проекта в окне "Проекты" и выберите команду "Свойства".
-
Выберите категорию 'Выполнить' в диалоговом окне 'Свойства проекта'.
-
Введите sakila.ui.DVDStoreAdmin в поле "Main Class". Нажмите кнопку "ОК".
В качестве альтернативы можно нажать кнопку "Browse" и выбрать главный класс в диалоговом окне.

-
Нажмите кнопку "Run Project" на главной панели инструментов для запуска приложения.
Введите информацию в строке поиска для текстовых полей "First Name" или "Last Name" и нажмите кнопку "Query" для поиска актера и просмотра подробных данных.

При вызове окна "Output" в среде IDE можно просмотреть запрос SQL, инициировавший извлечение представленных результатов.
Загрузка проекта решения
Решение для данного учебного курса в виде проекта можно загрузить несколькими способами.
-
Загрузите архив завершенного проекта в формате zip.
-
Выполните проверку исходных файлов проекта на выходе из примеров NetBeans, выполнив перечисленные ниже действия.
-
Выберите в главном меню "Группа > Subversion > Проверить".
-
В диалоговом окне "Проверка" введите следующий URL-адрес репозитория:
https://svn.netbeans.org/svn/samples~samples-source-code
Нажмите кнопку "Далее".-
Нажмите кнопку "Обзор" для открытия диалогового окна "Обзор папок репозитория".
-
Разверните корневой узел и выберите samples/java/DVDStoreAdmin-Ant. Нажмите кнопку "ОК".
-
Укажите локальную папку для исходных файлов (папка должна быть пустой).
-
Нажмите кнопку "Завершить".
-
-
После нажатия кнопки "Готово" среда IDE инициализирует локальную папку в качестве репозитория Subversion и выполняет проверку исходных файлов проекта на выходе.
-
Щелкните команду "Открыть проект" в диалоговом окне, которое появится после завершения проверки.
Примечание. Для получения исходных файлов на редактирование требуется клиент Subversion. Дополнительные сведения об установке Subversion см. в разделе Настройка Subversion в Руководстве по Subversion в IDE NetBeans.
Создание объектов POJO и файлов сопоставления по отдельности
Поскольку POJO представляет собой простой класс Java, вы можете использовать мастер создания классов Java, чтобы создать класс, а затем изменить класс в редакторе исходного кода, чтобы добавить необходимые поля и методы получения и установки. После создания объекта POJO мастер также можно использовать для создания файла сопоставления библиотеки Hibernate, обеспечивающего сопоставления класса с таблицей, и добавления информации о сопоставлении в файл hibernate.cfg.xml
. При создании файла сопоставления "с нуля" необходимо сопоставить поля и столбцы в редакторе XML.
Примечание. Это упражнение является необязательным и описывает создание POJO и файла сопоставления, созданных с помощью файлов сопоставления библиотеки Hibernate и POJO из мастера баз данных.
-
Щелкните правой кнопкой мыши узел "Source Packages" в окне "Projects" и выберите "New > Java Class" для открытия мастера создания класса Java.
-
В мастере введите Actor в качестве имени класса и sakila.entity в качестве имени пакета. Нажмите кнопку "Завершить".
-
Внесите в класс следующие изменения (выделены полужирным шрифтом) для реализации интерфейса "Serializable" и добавьте поля для столбцов таблицы.
public class Actor *implements Serializable* {
*private Short actorId;
private String firstName;
private String lastName;
private Date lastUpdate;*
}
-
Щелкните правой кнопкой мыши в редакторе и выберите 'Вставить код' (Alt-Insert, Ctrl-I на Mac) и выберите методы получения и установки в контекстном меню для создания методов получения и установки для полей.
-
В диалоговом окне "Generate Getters and Setters" выберите все поля и нажмите кнопку "Generate".

В диалоговом окне "Generate Getters and Setters" можно использовать стрелку вверх на клавиатуре для перемещения выбранного элемента к узлу "Actor", а затем нажать клавишу "пробел" и выбрать все поля "Actor".
-
Исправьте операторы импорта и сохраните измененные данные.
После создания объекта POJO для таблицы необходимо создать файл сопоставления библиотеки Hibernate для класса Actor.java
.
-
Щелкните правой кнопкой мыши узел исходных файлов
sakila.entity
в окне "Projects" и выберите "New > Other" для открытия мастера создания файла "New File". -
Выберите "Hibernate Mapping File" в категории "Hibernate". Нажмите кнопку "Далее".
-
Введите Actor.hbm в поле "File Name" и убедитесь в том, что выбрана папка src/sakila/entity. Нажмите кнопку "Далее".
-
Введите sakila.entity.Actor в поле "Class to Map" и выберите actor из раскрывающегося списка "Database Table". Нажмите кнопку "Завершить".

После выбора 'Готово' файл сопоставления Hibernate Actor.hbm.xml
открывается в редакторе исходного кода. Также в среде IDE выполняется автоматическое добавление записи для ресурса сопоставления в hibernate.cfg.xml
. В целях просмотра подробных данных разверните узел "Mapping" в режиме проектирования hibernate.cfg.xml
или в режиме XML. Запись mapping
в обзоре XML будет выглядеть следующим образом:
<mapping resource="sakila/entity/Actor.hbm.xml"/>
</session-factory>
</hibernate-configuration>
-
Сопоставьте поля в
Actor.java
со столбцами в таблице "ACTOR" путем внесения следующих изменений (выделены полужирным шрифтом) вActor.hbm.xml
.
<hibernate-mapping>
<class name="sakila.entity.Actor" *table="actor">
<id name="actorId" type="java.lang.Short">
<column name="actor_id"/>
<generator class="identity"/>
</id>
<property name="firstName" type="string">
<column length="45" name="first_name" not-null="true"/>
</property>
<property name="lastName" type="string">
<column length="45" name="last_name" not-null="true"/>
</property>
<property name="lastUpdate" type="timestamp">
<column length="19" name="last_update" not-null="true"/>
</property>
</class>*
</hibernate-mapping>
Для заполнения значений при изменении файла сопоставления можно использовать функцию автозавершения кода.
Примечание. По умолчанию у созданного элемента class
имеется закрывающий тег. Поскольку элементы свойства необходимо добавить между открывающим и закрывающим тегами элемента class
, следует внести следующие изменения (выделены полужирным шрифтом). После внесения изменений можно использовать функцию автозавершения кода между тегами class
.
<hibernate-mapping>
<class name="sakila.entity.Actor" *table="actor">
</class>*
</hibernate-mapping>
-
Нажмите кнопку "Validate XML" на панели инструментов и сохраните изменения.
Создание объектов POJO и файлов сопоставления библиотеки Hibernate может эффективно использоваться для дальнейшей настройки приложения.
Дополнительные сведения
Для получения дополнительных сведений о создании приложений с графическим интерфейсом пользователя на базе Swing см. следующие учебные курсы.