Изучаем Java EE 7 - [60]

Шрифт
Интервал

>··············integration-test

>··············verify

>············

>··········

>········

>······

>······

>········org.codehaus.mojo

>········exec-maven-plugin

>········1.2.1

>········

>··········

>············

>··············java

>············

>··········

>········

>········

>··········org.agoncal.book.javaee7.chapter04.Main

>········

>······

>····

>··

>

Прежде всего, чтобы вы смогли произвести компиляцию кода, вам потребуется JPA API, который определяет все аннотации и классы, имеющиеся в пакете javax.persistence. Все это, а также время выполнения EclipseLink (то есть поставщика постоянства) будет обеспечиваться с помощью идентификатора артефакта org.eclipse.persistence.jpa. Как можно было видеть в предыдущей главе, Bean Validation API заключен в артефакт hibernate-validator. Кроме того, вам потребуются JDBC-драйверы для подключения к Derby. Идентификатор артефакта derbyclient ссылается на файл с расширением. jar, содержащий JDBC-драйвер для подключения к Derby, работающей в серверном режиме (база данных функционирует как отдельный процесс и прослушивает порт), а идентификатор артефакта derby включает в себя классы для использования Derby как встраиваемой системы управления базами данных. Обратите внимание, что область этого идентификатора артефакта ограничивается тестированием (test), как и артефакта для JUnit 4.

Для компиляции классов откройте интерпретатор командной строки в корневом каталоге, содержащем файл pom.xml, и введите приведенную далее Maven-команду:

>$ mvn compile

После этого вы должны будете увидеть сообщение BUILD SUCCESS, говорящее о том, что компиляция прошла успешно. Maven создаст подкаталог target со всеми файлами наряду с persistence.xml. Для выполнения интеграционных тестов снова прибегните к Maven, введя следующую команду:

>$ mvn integration-test

Вы должны будете увидеть несколько журналов касаемо Derby при создании базы данных и таблиц в памяти. Затем окажется задействован класс BookIT, а отчет Maven проинформирует вас о том, что результаты применения трех вариантов тестирования оказались успешными:

>Results:

>Tests run: 3, Failures: 0, Errors: 0, Skipped: 0

>[INFO] —————

>[INFO] BUILD SUCCESS

>[INFO] —————

>[INFO] Total time: 5.192s

>[INFO] Finished

>[INFO] Final Memory: 18M/221M

>[INFO] —————

Применение класса Main с использованием Maven

Перед тем как применять класс Main, вам потребуется запустить Derby. Самый легкий способ сделать это — открыть каталог $DERBY_HOME/bin и выполнить сценарий startNetworkServer. Derby запустится и выведет в консоли следующие сообщения:

>Security manager installed using the Basic server security policy.

>Apache Derby Network Server — 10.9.1.0 — (8 02917) started and ready to accept connections on port 1527

Процесс Derby прослушивает порт 1527 и ждет, когда JDBC-драйвер отправит какой-нибудь SQL-оператор. Для применения класса Main вы можете воспользоваться командой интерпретатора java либо прибегнуть к exec-maven-plugin, как показано далее:

>$ mvn exec: java

В результате применения класса Main произойдет несколько вещей. Прежде всего Derby автоматически создаст базу данных chapter04DB, как только будет инициализирована сущность Book. Это случится потому, что в файле persistence.xml вы добавили свойство create=true в URL-адрес JDBC:

>

>··········value="jdbc: derby://localhost:1527/chapter04DB;create=true"/>

Это сокращение очень полезно, когда вы находитесь в режиме разработки, поскольку вам не требуются никакие SQL-сценарии для создания базы данных. Затем свойство javax.persistence.schema-generation-action проинформирует EclipseLink о необходимости автоматически удалить и заново создать таблицу BOOK. И наконец, сущность Book будет вставлена в таблицу (с автоматически сгенерированным идентификатором).

Воспользуемся Derby-командами для вывода на экран структуры таблицы: введем команду ij в консоли (каталог $DERBY_HOME/bin должен быть в вашей переменной PATH). Это приведет к запуску интерпретатора Derby, и вы сможете выполнить команды для подключения к базе данных, вывести на экран таблицы базы данных chapter04DB (show tables), проверить структуру таблицы BOOK (describebook) и даже увидеть ее содержимое, введя SQL-операторы, например SELECT * FROM BOOK.

>$ ij

>version 10.9.1.0

>ij> connect 'jdbc: derby://localhost:1527/chapter04DB';

>ij> show tables;

>TABLE_SCHEM·····|TABLE_NAME·····|REMARKS

>—————

>APP·············|BOOK···········|

>APP·············|SEQUENCE·······|

>ij> describe book;

>COLUMN_NAME···|TYPE_NAME|DEC&|NUM&|COLUM&|COLUMN_DEF|CHAR_OCTE&|IS_NULL&

>—————

>ID············|BIGINT···|0···|10··|19····|NULL······|NULL······|NO

>TITLE·········|VARCHAR··|NULL|NULL|255···|NULL······|510·······|YES

>PRICE·········|DOUBLE···|NULL|2···|52····|NULL······|NULL······|YES

>ILLUSTRATIONS |SMALLINT |0···|10··|5·····|0·········|NULL······|YES


Рекомендуем почитать
Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


MFC и OpenGL

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Симуляция частичной специализации

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.