我计划在投入生产之前使用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) 打开网址http://localhost:8080/H2Console/h2
3)使用用户名/密码=“sa”登录
然后我就可以访问 H2 控制台了。但是,无法使用默认 JDBC URL 登录 java:jboss/datasources/ExampleDS 我尝试使用名称和密码 sa,但它总是显示“密码错误”。
所以我阅读了有关的文档 https://developers.redhat.com/quickstarts/eap/h2-console/
它说: 要访问欢迎快速入门使用的测试数据库,请输入以下详细信息:
JDBC URL:jdbc:h2:mem:greeter-quickstart;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1 用户名: sa 密码:sa
所以我尝试了一下,终于可以连接了。但是数据库里好像没有表。文档说:
看一下greeter应用程序添加的数据。运行以下 SQL 命令:
select * from users;
我尝试过,但收到了消息
未找到表“USERS”
我在 JPA 应用程序中创建的表也找不到。我认为这是因为我的持久性文件指向
java:jboss/datasources/ExampleDS
所以我把它改为
jdbc:h2:mem:greeter-quickstart;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1
然后,当我尝试从 IntelliJ 运行我的 JPA 应用程序时,出现此错误:
“WFLYCTL0412:未安装所需的服务:” => [“jboss.naming.context.java.jdbc:h2:mem:greeter-quickstart;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1”], “WFLYCTL0180:缺少/不可用依赖项的服务”=> [
有谁知道我应该如何继续将我的表添加到 H2 数据库,然后查看这些表中的数据?
最佳答案
我认为你没有清楚一些概念: H2 有多种选项来创建数据库,使用文件作为基础或在内存中。
内存中不存储在任何地方,因此,如果您在应用程序中配置它,如下所示:
jdbc:h2:mem:whatever
jvm在自己的内存中启动一个数据库,仅供vm使用。
如果您想从外部连接,我建议使用嵌入式或服务器模式。
内存数据库将为空,您必须在启动时填充它。
我经常用它来进行测试。非常酷。
关于java - 如何将H2添加到Wildfly中,以便我可以看到数据库中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61288083/