2009-11-12 56 views
2

我只是好奇的东西。我在我的项目中使用hsql(嵌入当然)。有一段时间,我觉得需要可视化什么休眠正在generated.I拿了免费副本的dbvisualizer 。这里是hsqljdbc.properties有趣的东西与嵌入式hsql

jdbc.url =的jdbc:HSQLDB:文件:MYDB;创建=真
休眠hbm2ddl.auto =创建

我下载了HSQL 1.8.0_10。我做了所有必需的程序。我可以连接并查看表格,但在对表格做出的更改似乎不愿意显示。然后我试图删除数据库生成一个新的但仍然。你有任何想法在这?

我通常是德比,但我最近才意识到,关系管理并不是那么精确。我使用mysql的那一刻对开发并不好,所以我想知道如果我忘了做什么或它只是为了表现的是way.Thanks阅读本

+0

我与嵌入式HSQLDB相同的行为在JBoss 5.0服务器。在没有任何错误的情况下工作的EJB3,但数据库始终是空的。现在切换到德比,它工作正常。 – lemotdit 2009-11-12 19:45:30

+0

mmmh man.unique on field在Derby中似乎不起作用,这是我将它切换到hsql的原因之一。另外它的语法就像mysql一样 – 2009-11-12 20:48:44

+0

因此......我的答案是否适合您?考虑提供反馈,我应该如何知道我是否需要改进我的答案。或者,如果您自己找到了可行的解决方案,请发帖 – jitter 2009-12-03 09:52:48

回答

8

在新指南中详细讨论了使用HSQLDB进行开发和测试。

http://hsqldb.org/doc/2.0/guide/deployment-chapt.html#dec_app_dev_testing

HSQLDB默认使用的写入延迟机构和改变都在版本1.8.x的10秒在2.0和更高版本0.5秒后刷新到磁盘。

可以迫使数据库关闭并在最后一个连接与此URL封闭写的所有变化:

jdbc.url=jdbc:hsqldb:file:mydb;shutdown=true 

随着HSQLDB 2.x中您可以使用WRITE_DELAY属性来强制每个承诺写磁盘立刻道:

jdbc.url=jdbc:hsqldb:file:mydb;hsqldb.write_delay=false 

版本2.2.9,后来坚持的最新变化,当最后一个连接被关闭,因此它可能没有必要使用hsqldb.write_delay=false为关闭连接测试。

随着HSQLDB 1.8,则需要在beginnig运行SQL命令来做到这一点:

SET WRITE_DELAY FALSE

+0

感谢队友现在一切都有道理。下一次我会使用2.0版本,看看它是怎么回事 – 2012-10-22 06:45:50

+1

最新版本目前是2.2.9。总是尝试最新的。 – fredt 2012-10-22 08:20:30

+0

有没有人知道如果设置写入延迟对MEMORY TABLES有什么影响?或只是为'CACHED'? – ycomp 2016-06-08 02:38:36

1

默认情况下,HSQLDB保持表的内容在内存中,直到关闭数据库:http://www.hsqldb.org/doc/guide/ch05.html#N10DD6

根据您的需求(例如,在开发环境中工作的),这可能是足够。然而,对于生产来说,我宁愿使用一个DBMS,将​​每次更改写入多个位置(这对于我来说意味着Oracle,尽管MySQL也可能工作得很好)。

1

为什么不将show_sql属性设置为true,如果您想查看hibernate的功能?

相关问题