2010-01-19 37 views
0

我正在開發一個使用MySQL數據庫的Java桌面應用程序。該數據庫有6個表格。像往常一樣,每張表都應該允許CRUD(創建,讀取,更新和刪除)操作。如何有效地實現數據庫功能?

我爲每個表設計了6 * 4 = 24個JPanels,4個JPanels。每個JPanel都有組件來接受用戶輸入並執行它所設計的CRUD操作。例如,JPanel3被設計用於Table1的創建操作。

現在我想了解以下內容:

Q1。寫24個函數會更好嗎,每個函數都爲特定的表執行特定的函數? Q230。

Q2。這種情況非常正常,因爲每個應用程序一般都有很多表格。那麼,所有這些應用程序是否都使用這種方法爲每個表的每個操作編寫每個函數?

Q3。因爲它是一個Swing應用程序,並且每個CRUD操作都需要數據庫連接,所以當用戶啓動應用程序時連接數據庫會更好嗎?

它會更好,使當時的數據庫連接時,用戶點擊「保存」或「編輯」或「刪除」或「創建」按鈕?

Q4。從所有24個函數共享的實例變量中引用連接會更好嗎?或者每個功能都有自己的連接會更好嗎?

歡迎任何其他建議。

回答

3

A1。否。設計應該以需求和領域邏輯爲指導,而不是技術考慮。通常,對於每個表格,用戶都可以單獨訪問所有的CRUD操作是沒有意義的。編寫函數一起執行那些一起執行的操作。

A2。現在,大多數應用程序都使用對象/關係映射器,如Hibernate來處理這種事情。但是,仍然應該有頂層的應用程序邏輯,它們一起執行相關的操作。

A3/4。使用DB connection pool。 O/R映射器通常會自動執行此操作。

+0

+1爲了向我介紹數據庫連接池的概念 – 2010-01-19 15:44:59

0

該應用程序做什麼?

我希望你的對象使用比「JPanel3」和「Table1」更多的描述性名稱?

1

如果您可以與經驗豐富的人一起參與項目,那將會很棒。你的問題是可以理解的,但是......大多數項目已經有解決方案。

我相信還有很多比你所描述的那些更多的問題,你可以幾個月工作只是爲了發現問題 ;-)

有這麼多的建議,您可能需要,我們不能甚至開始。

你能考慮一個像Hibernate這樣的框架嗎? 儘管在學習過程中(和建議)你會學習很多關於數據庫層的問題和解決方案。


但是,爲了回答大家的一些問題:

Q1:沒有,書寫24級的功能將是一個很大的重複。 Q2:肯定不是。

Q3:數據庫連接通常超時。我建議在適當的時候要求一個,例如你描述的情況。

Q4:獲取連接應該是共享代碼。

4

請參閱this article關於DAO模式,然後 請參閱Don't repeat the DAO! article,以便製作通用的可重用DAO。

總之 - 在一個類包裝您的數據庫訪問功能和重用來自世界各地的階級,從而有效地使你的應用程序沒有明確依賴於數據庫操作 - 只在DAO類(接口)。

+0

+1爲您的答案 – 2010-01-19 15:20:16

1

Q1:你能有更少的JPanels和使用的JComboBox來讓用戶選擇至極表進行操作?這可能會爲你節省一些代碼。 Q2:在某些方面,是的。但請參閱我對Q4的回答。

Q3:你的連接,當用戶點擊,並留下你需要它打開的時間很短。數據庫連接佔用資源。

Q4:這將是好得多,如果你做的所有數據庫的代碼,並在一個類中,稱爲數據訪問對象進行交互,然後是更容易的數據庫從MySQL改變,如果你想。見http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javadb/

-1

,如果你寫任何代碼會更好。 是的!只需拖放即可。 數據驗證,報告和圖表。 創建一個完整的數據庫程序,無需編寫一行代碼。 常見的東西,如新/編輯/刪除/搜索/更新。 使用JDeveloper。

相關問題