如何将 H2 控制台连接到嵌入式 Spring H2 DB
How to connect H2 console to embedded Spring H2 DB
好的,我正在开发简单的应用程序,它有 Spring 用于开发的嵌入式 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 数据库中(我知道它是因为我使用和检索它们)。但是,当我查看 H2 控制台时,我的实体表不存在。
我猜 H2 控制台指向另一个 H2 数据库,Spring 嵌入式 H2 Db 与那个 H2 控制台无关。
如何解决?
编辑:我通过在网络浏览器中键入 http://localhost:8082 来访问 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 基于引导的,那么您必须遵循 https://springframework.guru/using-the-h2-database-console-in-spring-boot-with-spring-security/
好的,我正在开发简单的应用程序,它有 Spring 用于开发的嵌入式 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 数据库中(我知道它是因为我使用和检索它们)。但是,当我查看 H2 控制台时,我的实体表不存在。
我猜 H2 控制台指向另一个 H2 数据库,Spring 嵌入式 H2 Db 与那个 H2 控制台无关。
如何解决?
编辑:我通过在网络浏览器中键入 http://localhost:8082 来访问 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 基于引导的,那么您必须遵循 https://springframework.guru/using-the-h2-database-console-in-spring-boot-with-spring-security/