0

我有一个示例应用程序,它加载 2 条记录 ro 数据库,然后从数据库中获取所有记录并从每条记录中打印信息。

我的问题如下:当我运行程序时,它只获取在此运行时插入的记录,而不是之前插入的记录,另外,当我用 SQirrel 打开数据库时,没有这样的数据库。

这是我的休眠配置:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
        <property name="dialect">org.hibernate.dialect.HSQLDialect</property>
        <property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
        <property name="connection.url">jdbc:hsqldb:hibertest</property>
        <property name="connection.username">sk</property>
        <property name="connection.password">0000</property>
        <property name="show_sql">true</property>
        <property name="current_session_context_class">thread</property>
        <property name="hbm2ddl.auto">update</property>

        <mapping class="models.Work" />
    </session-factory>
</hibernate-configuration>

我做错了什么?

4

4 回答 4

4

我对 HSQLDB 没有经验,但请尝试以下 URL:

<property name="connection.url">jdbc:hsqldb:file:hibertest;shutdown=true</property>

请参阅:连接 URL文档

于 2012-05-09T17:09:48.170 回答
2

我相信 hsqldb 的默认配置是不在磁盘上为创建的表保存数据。请查看 hsqldb 文档以了解如何更改此行为并使表持久化。

http://hsqldb.org/doc/guide/guide.html#sgc_persist_tables

于 2012-05-09T17:10:14.673 回答
1

所有提供的答案都对我没有帮助。目前我使用 HSQLDB-2.3.2 和 hibernate-core-3.5.6 和 annotations-3.2.0

除了 Tomasz 的回答之外,我还需要手动编辑数据库脚本文件来设置:

SET WRITE_DELAY 0
于 2014-06-02T06:51:25.353 回答
0

您可以通过执行以下操作使用 HSQL 持久化数据,1。

 Connection c = DriverManager.getConnection("jdbc:hsqldb:file:/opt/db/testdb", "SA", "");

“/opt/db/testdb”这里是磁盘中的数据库位置。
2. CREATE **TEXT** TABLE <tablename> (<column definition> [<constraint definition>])
3. 分配表格的来源
SET TABLE mytable SOURCE "myfile;fs=|"

参考: http: //hsqldb.org/doc/2.0/guide/texttables-chapt.html

我的 Github 存储库显示了示例https://github.com/Ayyamperumal/HSQL/tree/master/SampleHSQLdb

您可以使用 Eclipse 中的“数据库开发”透视图来查看数据。(提供 hsql jar 作为驱动程序)或者从 hsqldb-*.jar 执行org.hsqldb.util.DatabaseManager以获取用于查看数据的 GUI。

于 2016-01-07T17:21:04.577 回答