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

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

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

>······

>······

>······

>value="insert.sql"/>

>····

>··

>··

>····org.eclipse.persistence.jpa.PersistenceProvider

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

>····

>······

>value="drop-and-create"/>

>······

>value="database"/>

>······

>················value="org.apache.derby.jdbc.EmbeddedDriver"/>

>······

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

>······

>value="insert.sql"/>

>····

>··

>

Написание SQL-сценария для загрузки данных

Обе единицы сохраняемости, определенные в листинге 4.10, загружают сценарий insert.sql (с использованием свойства javax.persistence.sql-loadscript-source). Это означает, что сценарий, показанный в листинге 4.11, выполняется для инициализации базы данных и вводит информацию о трех книгах.


Листинг 4.11. Файл insert.sql

>INSERT INTO BOOK(ID, TITLE, DESCRIPTION, ILLUSTRATIONS, ISBN, NBOFPAGE, 

>·················PRICE) values (1000, Изучаем Java EE 6', 

>·················'Лучшая книга о Java EE', 1, '1234–5678', 450, 49)

>INSERT INTO BOOK(ID, TITLE, DESCRIPTION, ILLUSTRATIONS, ISBN, NBOFPAGE, 

>·················PRICE) values (1001, 'Изучаем Java EE 7', 'Нет, это лучшая', 

>·················1, '5678–9012', 550, 53)

>INSERT INTO BOOK(ID, TITLE, DESCRIPTION, ILLUSTRATIONS, ISBN, NBOFPAGE, 

>·················PRICE) values (1010, 'Властелин колец', 'Одно кольцо 

>·················для управления всеми остальными', 0, '9012–3456', 222, 23)

Если вы внимательно посмотрите на интеграционный тест BookIT (метод shouldFindJavaEE7Book), то увидите, что в случае с ним ожидается, что в базе данных будет идентификатор Book в виде 1001. Благодаря инициализации базы данных соответствующие действия предпринимаются до выполнения тестов.

Компиляция и тестирование с использованием Maven

У нас есть все составляющие для компиляции и тестирования сущности перед выполнением приложения Main: сущность Book, интеграционный тест BookIT и единицы сохраняемости, которые привязывают эту сущность к базе данных Derby. Для компиляции этого кода вы воспользуетесь Maven вместо того, чтобы прибегать непосредственно к команде компилятора javac. Вам сначала потребуется создать файл pom.xml, описывающий проект и его зависимости вроде JPA и Bean Validation API. Вам также придется проинформировать Maven о том, что вы используете Java SE 7, сконфигурировав maven-compiler-plugin, как показано в листинге 4.12.


Листинг 4.12. Maven-файл pom.xml для компиляции, тестирования и выполнения приложения

>

>

>·········xmlns: xsi="http://www.w3.org/2001/XMLSchema-instance" 

>·········xsi: schemaLocation="http://maven.apache.org/POM/4.0.0 

>·········http://maven.apache.org/xsd/maven-4.0.0.xsd">

>··4.0.0

>··

>····parent

>····org.agoncal.book.javaee7

>····1.0

>··

>··org.agoncal.book.javaee7

>··chapter04

>··1.0


>··

>····

>······org.eclipse.persistence

>······org.eclipse.persistence.jpa

>······2.5.0

>····

>····

>······org.hibernate

>······hibernate-validator

>······5.0.0

>····

>····

>······org.apache.derby

>······derbyclient

>······10.9.1.0

>····

>····

>······org.apache.derby

>······derby

>······10.9.1.0

>······test

>····

>····

>······junit

>······junit

>······4.11

>······test

>····

>··


>··

>····

>······

>········org.apache.maven.plugins

>········maven-compiler-plugin

>········2.5.1

>········

>··········1.7

>··········1.7

>········

>······

>······

>········org.apache.maven.plugins

>········maven-failsafe-plugin

>········2.12.4

>········

>··········

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

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


Рекомендуем почитать
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 так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.