簡體   English   中英

如何將H2控制台連接到嵌入式Spring H2 DB

[英]How to connect H2 console to embedded 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瀏覽器中輸入http:// localhost:8082來訪問H2控制台。

如果您的應用程序不是春季啟動,那么您需要在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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM