2011-02-16 60 views
1

我正在使用H2 database作爲簡單的Web應用程序。H2控制檯 - 通過瀏覽器查看數據庫顯示舊數據

當我嘗試通過H2控制檯Web瀏覽器查看數據時,它似乎沒有用數據庫中的最新數據進行更新。

例如:

我添加了一個新的記錄表中​​使用我的web應用程序,當我從我加入了記錄表做一個select *,它並不顯示新記錄。

我對登錄以下設置,當我通過瀏覽器連接到H2控制檯:

保存的設置:通用H2(嵌入式)

設置名稱:通用H2(嵌入式)

驅動程序類:org.h2.Driver

JDBC URL:JDBC:H2:文件:/開發出/數據庫/ snowy_db; FILE_LOCK = NO

關於如何使用H2控制檯瀏覽器訪問數據庫中最新數據的任何想法?

在此先感謝。

編輯

我想補充:我可以看到新的記錄在我的web應用程序,但不是當我使用H2控制檯瀏覽器。

+0

你需要提交更新嗎? – trashgod 2011-02-16 16:57:14

+0

我正在使用我認爲應該自動提交的使用hibernate的seam。數據庫中有我添加的舊記錄。 – Sam 2011-02-16 17:17:47

回答

2

我想你的問題是FILE_LOCK=NO選項。 documentation指出:

它是由應用程序來保護數據庫文件。否則會導致數據庫損壞。 [...]請注意,另一個進程能夠打開同一個數據庫,可能導致數據損壞

我強烈建議您使用更復雜的H2模式像automatic mixed mode這是不安全的。在這種模式下,連接到給定數據庫的第一個應用程序將打開一個套接字服務器,並且隨後每次從其他應用程序連接到此數據庫的嘗試都使用套接字連接而不是原始文件系統訪問。

如果您覺得不舒服,只需將H2作爲獨立服務器單獨運行或在您的Seam應用程序中運行。然後更改您的JDBC URL,以便通過localhost和TCP連接進行連接。

相關問題