Изучаем Java EE 7 - [60]
>··············
>··············
>············
>··········
>········
>······
>······
>········
>········
>········
>········
>··········
>············
>··············
>············
>··········
>········
>········
>··········
>········
>······
>····
>··
>
Прежде всего, чтобы вы смогли произвести компиляцию кода, вам потребуется JPA API, который определяет все аннотации и классы, имеющиеся в пакете javax.persistence. Все это, а также время выполнения EclipseLink (то есть поставщика постоянства) будет обеспечиваться с помощью идентификатора артефакта org.eclipse.persistence.jpa. Как можно было видеть в предыдущей главе, Bean Validation API заключен в артефакт hibernate-validator. Кроме того, вам потребуются JDBC-драйверы для подключения к Derby. Идентификатор артефакта derbyclient ссылается на файл с расширением. jar, содержащий JDBC-драйвер для подключения к Derby, работающей в серверном режиме (база данных функционирует как отдельный процесс и прослушивает порт), а идентификатор артефакта derby включает в себя классы для использования Derby как встраиваемой системы управления базами данных. Обратите внимание, что область этого идентификатора артефакта ограничивается тестированием (
Для компиляции классов откройте интерпретатор командной строки в корневом каталоге, содержащем файл 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
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.