我有一个示例应用程序,它加载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>
我做错了什么?
答案 0 :(得分:4)
我对HSQLDB没有经验,但请尝试以下网址:
<property name="connection.url">jdbc:hsqldb:file:hibertest;shutdown=true</property>
答案 1 :(得分:2)
我认为hsqldb的默认配置是不为已创建的表保存磁盘上的数据。请查看hsqldb文档,了解如何更改此行为并使表持久。
答案 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。