在应用程序启动时启动 HSQLDB 数据库管理器?

Posted

技术标签:

【中文标题】在应用程序启动时启动 HSQLDB 数据库管理器?【英文标题】:Start HSQLDB database manager on application startup? 【发布时间】:2011-06-27 09:21:26 【问题描述】:

当我在本地开发环境中工作时,是否可以以某种方式自动启动 HSQLDB 数据库管理器?我现在正在使用内存数据库。在运行测试用例时,我发现了一些代码来启动数据库管理器。这也可以在启动 Web 应用程序时使用吗?

org.hsqldb.util.DatabaseManagerSwing.main(new String[]  "--url","jdbc:hsqldb:mem:moviecollection", "--noexit" );

【问题讨论】:

【参考方案1】:

我假设您正在使用 Spring,因为您用它标记了您的问题。你可以创建一个 Spring bean,它的方法用 JSR-250 annotation@PostConstruct 注释。用@PostConstruct注解的方法表示该方法应该在bean创建完成并且依赖注入完成后调用。

@Component
public class Initializer

    @PostConstruct
    public void init()
    
       org.hsqldb.util.DatabaseManagerSwing.main(new String[]  "--url","jdbc:hsqldb:mem:moviecollection", "--noexit" ); 
    

如果您使用 Web 应用程序启动 DatabaseManagerSwing,它将被创建并显示在您可能不想做的 WAR 运行的服务器上。

【讨论】:

【参考方案2】:

您不需要明确启动它。如果你配置连接url并添加jar就足够了。

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
  <property name="url" value="jdbc:hsqldb:mem:demo"/>
  <property name="username" value="sa"/>
  <property name="password" value=""/>      <
</bean>

【讨论】:

嗯,也许我有点不清楚。我不是在问如何启动数据库本身,我已经这样做了。我想知道如何启动数据库管理器,以便我可以浏览我的表等。 你为什么不创建一个脚本来随时执行管理器呢? (操作系统启动,或在脚本中包含 IDE 的启动等)【参考方案3】:

如果你使用 maven try exec java program,将其绑定到 deploy 目标

我相信基于 ant 的项目也有类似的解决方案

【讨论】:

以上是关于在应用程序启动时启动 HSQLDB 数据库管理器?的主要内容,如果未能解决你的问题,请参考以下文章

无法访问 PUBLIC 架构中的表

每次重新启动 HSQLDB 服务器时都必须设置 HSQLDB SA 密码吗?

带有spring和hibernate的hsqldb启动时数据文件中的数据在哪里

HSQLDB 启动 DDL 脚本

HSQLDB:count(*) 返回一个小数

以编程方式启动 hsqldb 数据库