如何将H2控制台连接到嵌入式Spring H2 DB

好的,我正在开发一个简单的应用程序,该应用程序具有Spring Ebedded H2数据库可供开发。database.xml bean

conf看起来像这样:

<bean id="h2Server" class="org.h2.tools.Server" factory-method="createTcpServer"

init-method="start" destroy-method="stop" depends-on="h2WebServer">

<constructor-arg value="-tcp,-tcpAllowOthers,-tcpPort,9092" />

</bean>

<bean id="h2WebServer" class="org.h2.tools.Server" factory-method="createWebServer"

init-method="start" destroy-method="stop">

<constructor-arg value="-web,-webAllowOthers,-webPort,8082" />

</bean>

<jdbc:embedded-database id="dataSource" type="H2" />

H2数据库正在初始化,我的应用程序正在运行,我正在创建实体,并且在启动Tomcat时将它们存储在H2

db中(我知道它是因为我使用并检索了它们)。但是,当我查看H2控制台时,我的实体表不存在。

我猜想H2控制台指向另一个H2数据库,并且Spring Embedded H2 Db与该H2控制台无关。

如何解决?

编辑:我通过在Web浏览器中输入

来访问H2控制台。

回答:

如果您的应用程序不是spring启动,那么您需要在web.xml文件中添加以下servlet配置

!-- H2 Database Console for managing the app's database -->

<servlet>

<servlet-name>H2Console</servlet-name>

<servlet-class>org.h2.server.web.WebServlet</servlet-class>

<init-param>

<param-name>-webAllowOthers</param-name>

<param-value>true</param-value>

</init-param>

<load-on-startup>2</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>H2Console</servlet-name>

<url-pattern>/admin/h2/*</url-pattern>

</servlet-mapping>

<!-- Handles requests into the application -->

请查看更多详细信息https://github.com/spring-

projects/greenhouse/blob/master/src/main/webapp/WEB-

INF/web.xml

如果您的应用程序是基于Spring Boot的,则必须遵循https://springframework.guru/using-

the-h2-database-console-in-spring-boot-with-spring-

security/

以上是 如何将H2控制台连接到嵌入式Spring H2 DB 的全部内容, 来源链接: utcz.com/qa/410642.html

回到顶部