从 intellij 14 查看 petclinic 应用程序的 hsqldb 内容

View hsqldb content of petclinic application from intellij 14

我已经克隆了 petclinic 项目并将其导入到 intellij 14 中。

我的问题是,当我在本地主机上使用应用程序时,我如何才能看到 petclinic 应用程序默认使用的 hsqldb 数据库的内容? 我的第一次尝试是:

当我测试连接时没问题,即使应用程序服务器没有启动,我认为这是 weard

当我在数据库视图中启动应用程序 ./mvnw tomcat7:run 时,我只得到模式:PUBLIC.PUBLIC,根本没有 table。

我的问题是如何在 intellj 中配置数据库连接以查看 petclinic 应用程序中使用的 hsqldb 的内容?

谢谢。

添加说明: 如果您查看 petclinic 代码 [link] https://github.com/spring-projects/spring-petclinic,您将看到 hsqldb 已在应用程序启动时配置并启动。而且配置是

jdbc.driverClassName=org.hsqldb.jdbcDriver          
jdbc.url=jdbc:hsqldb:mem:petclinic
jdbc.username=sa
jdbc.password=

我想我需要重用与 petclinic 代码启动的 hsqldb 相同的 hsqldb,但我不知道一旦应用程序在本地启动后如何从 intellij 实现这一点。感谢您的帮助。

localhost 服务器的 URL 通常是 jdbc:hsqldb:hsql://localhost/ 或者可以在末尾附加 petclinic。 但是在启动Tomcat 并使用上面的URL 连接之前,您需要运行 一个HSQLDB 服务器,而不是jdbc:hsqldb:mem:petclinic URL。

好吧,回答我自己的问题,这是要做的事情:

在创建数据源 bean 之后实例化一个 spring bean,然后启动 swing 工具 hsql 数据库管理器添加这些简单的代码行:

<bean depends-on="dataSource" class="org.springframework.beans.factory.config.MethodInvokingBean">
    <property name="targetClass" value="org.hsqldb.util.DatabaseManagerSwing" />
    <property name="targetMethod" value="main" />
    <property name="arguments">
        <list>
            <value>--url</value>
            <value>jdbc:hsqldb:mem:petclinic</value>
            <value>--user</value>
            <value>sa</value>
            <value>--password</value>
            <value></value>
        </list>
    </property>
</bean>

然后 select PUBLIC 架构,您将看到所有表:=)