具有Hibernate的HSQLDB在应用程序结束后不保存记录

时间:2012-05-09 16:59:33

标签: java hibernate hsqldb

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

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

这是我的Hibernate配置:

<?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 个答案:

答案 0 :(得分:4)

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

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

请参阅:Connection URL documentation

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

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

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

SET WRITE_DELAY 0

答案 3 :(得分:0)

您可以通过执行以下操作使用HSQL来保存数据, 1.

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

<强>&#34; /选择/分贝/ TESTDB&#34;这是磁盘中的DB位置。
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

你可以使用&#34;数据库开发&#34;从Eclipse的角度来看数据。 (提供hsql jar作为驱动程序)或者从hsqldb - * .jar执行 org.hsqldb.util.DatabaseManager 以获取用于查看数据的GUI。