Как добавить H2 в Wildfly, чтобы я мог видеть данные в базе данных? - PullRequest
0 голосов
/ 18 апреля 2020

Я планировал использовать ExampleDS (java: jboss / datasources / ExampleDS) для разработки Java перед началом производства. Это источник данных по умолчанию в Wildfly, настроенный с использованием встроенной базы данных H2 для удобства разработчика. Мне нужно видеть данные в этих таблицах во время разработки. Я развиваюсь в IntelliJ. Справа вверху есть вкладка «База данных». Я ранее добавил базы данных здесь, и я мог видеть их содержание. Но я не знаю, как добавить базу данных ExampleDS.

Затем я попробовал этот подход: 1) Развернуть предварительно созданный WAR-файл для консоли H2: https://www.cs.hs-rm.de/~knauf/JavaEE6/kuchen/H2Console.war)

2) Открыть URL http://localhost: 8080 / H2Console / h2

3) войти с именем пользователя / паролем = "sa"

После этого я смогу получить доступ к консоли H2. Однако было невозможно войти в систему с JDB C URL java по умолчанию: jboss / datasources / ExampleDS Я пытался использовать имя и пароль sa, но он всегда говорит «неверный пароль».

Поэтому я прочитал Документация по https://developers.redhat.com/quickstarts/eap/h2-console/

В нем говорится: Чтобы получить доступ к тестовой базе данных, используемой программой быстрого запуска, введите следующие данные:

JDB C URL: jdb c: h2: mem: greeter-quickstart; DB_CLOSE_ON_EXIT = FALSE; DB_CLOSE_DELAY = -1 Имя пользователя: sa Пароль: sa

Итак, я попробовал это, и я наконец смог подключиться. Но, похоже, в базе данных нет таблиц. Документация гласит:

Посмотрите на данные, добавленные приложением greeter. Выполните следующую команду SQL:

select * from users;

Я пробовал это, но получил сообщение

Таблица "ПОЛЬЗОВАТЕЛИ" не найдена

Таблицы, которые я создал в мое приложение JPA также не может быть найдено. Я предполагаю, что это потому, что мой файл персистентности указывает на

java: jboss / datasources / ExampleDS

Поэтому я изменил его на

jdb c: h2: mem : greeter-quickstart; DB_CLOSE_ON_EXIT = FALSE; DB_CLOSE_DELAY = -1

Затем я получил эту ошибку при попытке запустить приложение JPA из IntelliJ:

"WFLYCTL0412: Необходимые службы, которые не установлены: "=> [" jboss.naming.context. java .jdb c: h2: mem: greeter-quickstart; DB_CLOSE_ON_EXIT = FALSE; DB_CLOSE_DELAY = -1 "]," WFLYCTL0180: Службы с отсутствующими / недоступными зависимостями "= > [

Кто-нибудь знает, как мне поступить с этим, чтобы фактически добавить мои таблицы в базу данных H2 и затем просмотреть данные в этих таблицах?

1 Ответ

1 голос
/ 18 апреля 2020

Я думаю, у вас нет ясности некоторых понятий: у H2 есть несколько опций для создания базы данных, используя файл в качестве основы или в памяти.

In-memory не сохраняется ни в одном по этой причине, если вы настроите его в своем приложении следующим образом:

jdbc:h2:mem:whatever

jvm запускает базу данных в своей собственной памяти, доступной только для vm.

Если вы хотите подключиться извне, я рекомендую использовать встроенный или серверный режим.

Из c база данных в памяти будет пустой, вы должны заполнить ее при запуске. up.

Я много использовал для тестирования. Это довольно круто.

Посмотрите на таблицу H2: https://www.h2database.com/html/cheatSheet.html

...