Hibernate无法连接到HSQLDB基于文件的数据库,挂起

时间:2011-06-10 23:38:21

标签: hibernate hsqldb

我正在使用HQLnate和HSQL DB。我有一个名为“testdb”的基于文件的HSQL数据库。

当我尝试连接到我的HSQL文件串URL时,我的应用程序挂起。

它在Hibernate输出之后立即挂起:

INFO: using driver: org.hsqldb.jdbcDriver at URL: jdbc:hsqldb:file:testdb
INFO: connection properties: {user=SA, password=****}

请注意,内存中的HSQL会出现问题。如果URL是“jdbc:hsqldb: mem :testdb”,一切正常。所以这是一个文件设置问题。

我在Hibernate中验证了数据库存在,HSQL文件存在,我有我的表,可以浏览它们。

事实上,即使我在File:中指定了一个不存在的文件,它仍然会挂起。我究竟做错了什么?感谢

我的hibernate.cfg.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
  <session-factory>
     <!-- Database connection settings -->
        <property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
        <property name="connection.url">jdbc:hsqldb:file:testdb</property>
        <property name="connection.username">SA</property>
        <property name="connection.password"></property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">2</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.HSQLDialect</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>

        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">create</property>

  </session-factory>
</hibernate-configuration>

2 个答案:

答案 0 :(得分:1)

当第一次尝试连接尝试打开数据库时,它会创建一个.lck文件。此文件包含定期更新的时间戳,并防止其他进程同时连接到数据库。如果没有连接其他数据库,则不会阻止连接。因此,您无需删除.lck文件。

如果在连接尝试期间未创建.lck文件,则表示未建立连接。文件访问权限可能存在问题。

您始终可以通过与GUI DatabaseManager的连接来检查数据库本身。

答案 1 :(得分:0)

数据库有大表,获取数据库对象需要时间。