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

标签 java intellij-idea jboss wildfly h2

我计划在投入生产之前使用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使用。

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

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

我经常用它来进行测试。非常酷。

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

关于java - 如何将H2添加到Wildfly中,以便我可以看到数据库中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61288083/

相关文章:

java - 在 BlackBerry 上导入 Jar 文件时抛出 MissingNativeError

java - 有没有办法确定 newFixedThreadPool 队列中有多少个可运行对象?

logging - JBoss 类加载日志记录

Android R 类显示为空

java - 找不到 Gradle 命令

java - 如何在JBoss 4.2.3 GA上显示汉字

java - 使用Java从SD卡中提取android文件

java.lang.UnsupportedClassVersionError : Bad version number in . 类文件?

scala - 无法在 Intellij 中运行 Scala 文件

typescript - 引用路径不使用导入捕获接口(interface) - IntelliJ