如何将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 内存数据库将为空,您必须在启动时填充它。
我经常用它来测试。挺好看的。
我计划在投入生产之前使用 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 内存数据库将为空,您必须在启动时填充它。
我经常用它来测试。挺好看的。