一尘不染

查看Spring启动的嵌入式H2数据库的内容

spring

由于以下配置,我想在Web浏览器中查看Spring启动的H2数据库的内容:

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

<jdbc:initialize-database data-source="dataSource">
    <jdbc:script location="classpath:db/populateDB.sql"/>
</jdbc:initialize-database>

我在日志中搜索了JDBC URL:

DEBUG o.s.j.d.SimpleDriverDataSource - Creating new JDBC Driver Connection to [jdbc:h2:mem:dataSource;DB_CLOSE_DELAY=-1]

但是不幸的是,数据库仍然是空的,但是由于populateDB.sql脚本,它不应该是空的。

任何想法?

谢谢!


阅读 458

收藏
2020-09-20

共1个答案

一尘不染

只需将以下内容添加到您的配置中即可。

<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>

这将在与嵌入式数据库相同的JVM中启动H2 Web控制台和TCP服务器,以便您可以使用Web浏览器访问端口8082(将URL输入jdbc:h2:mem:dataSource),或使用外部SQL客户端访问端口9092。例如SQuirreLSQL并查看相同的数据。

2020-09-20