在投入生产之前,我计划使用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( 打开URLhttp://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:greetiner quickstart;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1用户名:sa密码:sa
所以我试过了,我终于可以连接了。但数据库中似乎没有表。文件上写着:
看看迎宾应用程序添加的数据。运行以下SQL命令:
select * from users;
我试过了,但收到了的消息
未找到表"USERS">
我在JPA应用程序中创建的表也找不到。我想这是因为我的持久性文件指向
java:jboss/datasources/ExampleDS-
所以我把它改成
jdbc:h2:mem:greetiner快速启动;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1
然后我在尝试从IntelliJ:运行我的JPA应用程序时出现了这个错误
"WFLYCTL0412:未安装的必需服务:"=>["jboss.naming.context.java.jdbc:h2:mem:greetiner quickstart;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1"],"WFLYCTL0180:缺少/不可用依赖项的服务"=>[
anypne知道我应该如何进行这项工作吗?将我的表添加到H2数据库中,然后查看这些表中的数据?
我认为有些概念还不清楚:H2有几个选项来创建数据库,使用文件作为基础或在内存中。
内存中没有存储在任何地方,因此,如果你在应用程序中这样配置它:
jdbc:h2:mem:whatever
jvm在自己的内存中启动一个数据库,该数据库仅可用于vm。
如果你想从外部连接,我建议使用嵌入式或服务器模式。
Ofc内存中的数据库将为空,您必须在启动时填充它。
我经常用它来测试。很酷。
检查H2备忘单:https://www.h2database.com/html/cheatSheet.html