我从 H2 控制台连接到内存 DB 中的 H2 时遇到问题。我没有使用 Spring - 只是纯 Java EE。我在 persistence.xml 文件中指定 H2 连接字符串:
<persistence-unit name="testPersistenceUnit" transaction-type="JTA">
<jta-data-source>jdbc:h2:mem:testdb</jta-data-source>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE" />
<property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/>
</properties>
然后,当应用程序在我的一个 servlet 中启动时,我将启动 TCP 和 Web H2 服务器:
Server.createWebServer("-web", "-webAllowOthers", "-webPort", "8082").start();
Server.createTcpServer("-tcp", "-tcpAllowOthers", "-tcpPort", "9092").start();
然后我尝试打开 localhost:8082 并输入连接所需的信息:
- 驱动类:org.h2.Driver
- JDBC URL:jdbc:h2:mem:testdb
我看到的第一个问题 - 我输入的用户/密码无关紧要 - 连接总是成功的。另一个问题 - 当我按下 Connect 时,我看不到任何表格。我知道使用 Spring 支持很容易。但是,我发现的解决方案不适用于 Java EE 应用程序。