我只是对某些事情感到好奇。我在我的项目中使用 hsql(当然是嵌入式的)。有时我觉得需要可视化 hibernate 生成的内容。我拿了一份 dbvisualizer 的免费副本。这是 hsqljdbc.properties

jdbc.url=jdbc:hsqldb:文件:mydb;create=true
休眠 hbm2ddl.auto=创建

我下载了hsql 1.8.0_10。我完成了所有必需的过程。我可以连接并查看表,但之后对表所做的更改似乎不愿意显示。然后我尝试删除数据库生成一个新数据库,但仍然如此。你得到了有什么想法吗?

我通常使用 Derby,但最近我意识到关系管理并不那么精确。我目前使用 mysql,这对开发不利,所以我想知道我是否忘记做某事,或者它只是意味着这样做。感谢您阅读本文

有帮助吗?

解决方案

使用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

其他提示

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

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

你为什么不只是show_sql属性设置为true,如果你想看到休眠做什么?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top