簡體   English   中英

對於中等復雜的Java桌面應用程序; JavaDB連接應該是靜態的嗎?

[英]For moderately complex Java Desktop app; should JavaDB connection be static?

我正在編寫一個中等復雜的Java桌面應用程序,其中包括嵌入式數據庫。 在應用程序建立與數據庫的連接之后,為什么在應用程序將要關閉之前它應該關閉連接,我看不出任何原因。

實際上,對數據庫所做的一切都需要連接。 事務可以在連接中順序啟動和完成,該應用程序並沒有對數據庫進行任何復雜的操作。

是否有任何原因為什么我不應該創建連接並將其引用放在特定於數據庫的類已知和使用的類的靜態變量中? 這樣就不必在不改變值的情況下在各種方法之間傳遞連接。

我在某處缺少設計級別的考慮嗎?

rc

我建議使用諸如c3p0dbcp類的庫來為您處理連接池。 如果需要,它使您可以靈活地在以后擴展應用程序。

static任何東西通常都很難編寫適當的測試用例 ,因為您永遠不知道靜態資源是否已被更改。

三個月后,您將希望能夠同時連接到兩個數據庫-也許您正在做一些導入/導出工作,或升級工作,或將兩個客戶合並在一起。 然后,您將需要其中兩個。 現在突然之間,每個人都使用的靜電場是一場噩夢。

您可以研究像GuiceSpring這樣的IoC容器,以確保您可以跟蹤“單例”對象,而不會濫用靜態字段來增強其“單例”性。

避免靜電。 考慮使用此類變量的並發和多線程問題。 一個好點是處理您與數據庫池的連接。 Spring是您的朋友,可以實現簡單且不錯的配置

在應用程序建立與數據庫的連接之后,為什么在應用程序將要關閉之前它應該關閉連接,我看不出任何原因。

在我看來,這完全可以。 它是一個嵌入式數據庫; 它為您的應用服務。 在啟動時創建連接,並在需要時使用它,在應用程序關閉時將其關閉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM