2009-11-12 31 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的功能?

相關問題