如何将H2 添加到Wildfly,以便我可以看到数据库中的数据?

How to add H2 to Wildfly, so I can see the data in the database?

我计划在投入生产之前使用 ExampleDS (java:jboss/datasources/ExampleDS) 进行 Java 开发。它是 Wildfly 中的默认数据源,为方便开发人员使用嵌入式 H2 数据库进行配置。我需要在开发过程中查看这些表中的数据。我在 IntelliJ 中开发。右上角有一个“数据库”选项卡。我之前在这里添加了数据库,我可以看到它们的内容。但是我不知道如何添加 ExampleDS 数据库。

然后我尝试了这种方法: 1) 为 H2 控制台部署预构建的 WAR-文件:https://www.cs.hs-rm.de/~knauf/JavaEE6/kuchen/H2Console.war )

2) 打开 URL http://localhost:8080/H2Console/h2

3) 使用 username/password = "sa"

登录

然后我可以访问 H2 控制台。但是无法使用默认 JDBC URL 登录 java:jboss/datasources/ExampleDS 我尝试使用名称和密码 sa,但它总是显示 "wrong password".

所以我阅读了文档 https://developers.redhat.com/quickstarts/eap/h2-console/

它说: 要访问欢迎程序快速入门使用的测试数据库,请输入以下详细信息:

JDBC URL:jdbc:h2:mem:greeter-快速入门;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1 用户名:sa 密码:sa

所以我试过了,终于可以连接了。但是数据库里好像没有表。文档说:

看看迎宾应用添加的数据。 运行 以下 SQL 命令:

select * from users;

我试过了,但收到了消息

Table "USERS" 未找到

我在 JPA 应用程序中创建的表也找不到。我认为这是因为我的持久性文件指向

java:jboss/datasources/ExampleDS

所以我改成了

jdbc:h2:mem:greeter-快速入门;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1

然后我在尝试从 IntelliJ 运行 我的 JPA 应用程序时遇到此错误:

"WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.jdbc:h2:mem:greeter-quickstart;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1"], "WFLYCTL0180: Services with missing/unavailable dependencies" => [

任何人都知道我应该如何继续将我的表实际添加到 H2 数据库,然后查看这些表中的数据吗?

我觉得你有些概念还不清楚: H2 有几个创建数据库的选项,使用文件作为基础或在内存中。

内存中不会存储在任何地方,因此如果您在应用中这样配置它:

jdbc:h2:mem:whatever

jvm在自己的内存中启动了一个数据库,只对vm可用。

如果你想从外部连接我建议使用嵌入式或服务器模式。

Ofc 内存数据库将为空,您必须在启动时填充它。

我经常用它来测试。挺好看的。

检查 H2 备忘单: https://www.h2database.com/html/cheatSheet.html