2013-05-16 85 views
1

我想構建一個簡單的圖形用戶界面,您可以在其中編寫一些整數。這些整數應該寫入到我正在查找的數據庫中。併發嵌入式Java數據庫的簡單應用

到目前爲止這麼好。數據庫中的數據應該用於另一個已經存在的獨立應用程序。

我已經用SQLite試過了,但是我收到了很多「數據庫鎖定」的錯誤。我搜索了Google。我經常閱讀的關鍵答案是切換到支持併發進程的數據庫。

我走得更遠了,看看H2和HSQLDB。他們兩人似乎都是合法的,但要複雜得多。

所以我想:

我想有與數據庫相結合的GUI是在一個.jar文件移動(或僅一個文件夾),所以當我切換電腦我沒有將數據庫安裝在某個文件夾中,如主目錄或其他東西。使用SQLite,你只需要這樣做:

Connection con = DriverManager.getConnection("jdbc:sqlite:test.db"); 

正如你所看到的,不需要Path-infortmation。我如何用H2或HSQLDB做到這一點?

我真的很期待您的建議。但只有開源的請。

最親切的問候和非常感謝你!

斯特凡

回答

0

使用H2和HSQLDB,您可以執行相同的操作。

在H2中,表單jdbc:h2:test的數據庫URL將在應用程序的當前工作目錄中創建一個名爲test.h2.db的文件。如果這是你想要的,那很好。請注意,我通常不會建議這麼做,因爲很多人遇到問題,他們有時會在不同的目錄中啓動應用程序(然後創建一個新的數據庫)。因此,我建議使用jdbc:h2:~/test,這意味着數據庫文件是相對於當前用戶主目錄存儲的。

+0

謝謝托馬斯。請糾正我,如果我錯了:這是否意味着如果有一個可執行文件.jar文件並在另一臺計算機上運行 - >在第一次運行數據庫將存儲在「〜/測試」? – StefanOverFlow

+0

是的,在數據​​庫URL爲'jdbc:h2:〜/ test'的情況下,數據庫文件將存儲在當前用戶主目錄下,名稱爲test.h2.db。如果這樣的數據庫文件已經存在,那麼它當然會被重新使用。 –

+0

這是個好消息。謝謝你,問候 – StefanOverFlow

0

處理的嵌入式數據庫文件的創建應該不會有大問題 - 但是,如果你真的不喜歡這根棍子使用SQLite:它應該處理併發不夠好,基本用法 - 「數據庫鎖定」聽起來更像應用程序級別的問題

+0

謝謝馬克。我一定會試一試,並仔細查看應用程序中可能的開放連接。我很想繼續使用SQLite,但谷歌發現的不同職位認爲切換到另一個數據庫。謝謝! – StefanOverFlow