2011-06-22 23 views
3

我一直在絞盡腦汁。我一直生活在Django世界一段時間,很難回到Java。ORM/RDBMS應該與Java桌面應用程序一起使用嗎?

我正在做一個桌面Swing應用程序,做一些簡單的CRUD的東西,對模型一些簡單的一個一對多的關係。我一直在研究像DataNucleus這樣的ORM解決方案,但是我依靠其20mb的依賴關係,依靠XML以及不熟悉所有三字母縮略詞的方式推遲。

所有我希望做的是讓用戶填寫在某些領域,在一個表格中顯示出來,讓他們選擇/編輯/刪除表中的條目,並保存/打開該數據文件。

ORM解決方案是否對這種類型的場景過度使用?我應該把它們全部放在一個ArrayList中,並自己編寫所有的CRUD文件?

+0

只是爲了補充這一點,我碰到[JFace的(http://wiki.eclipse.org/index.php/JFace)來了,用SWT幫助圖書館,並且支持MVC-風格,同時獨立的結合表您正在使用的持久性類型。 – bcoughlan

回答

1

DataNucleus 20Mb大小的依賴關係?我建議你重新考慮一下並關注你的要求。如果您計算出所有可能的數據存儲支持以及所有可能的數據存儲支持的所有可能依賴關係(可能會達到20Mb)(但您是否堅持9種不同類型的數據存儲?),但如果您想要堅持說使用JDO的Excel你已經少於3Mb。這些罐子的大小几乎不影響你的應用程序的速度,或者根本不影響你的應用程序的速度(除了下載時間以外,互聯網連接速度比以前要快)。

對XML的依賴?不。您可以根據需要使用註釋(和NO XML)。

+0

感謝您對此進行清理。我有一個小問題:正如我所說的應用程序具有標準的文件 - >打開和文件 - >保存功能。如果我堅持使用Excel文件,是否會對模型對象所做的每次更改都保留在文件中,或者可以這樣做,即模型對象將保留在內存中,並且只有在用戶單擊「保存」時纔會保留。 – bcoughlan

+0

最合乎邏輯的方法是File-> Open在持久性API上調用檢索方法,在文件 - >保存中調用持久性API上的save方法。持續/恢復呼叫需要幾毫秒,以便用戶不會注意到它們。在一天結束時,您的代碼將決定您何時將數據放入數據存儲區 – DataNucleus

1

當你說「保存/打開該數據到文件」,什麼樣的文件呢?如果使用XML,則可以查看EclipseLink MOXy,它是Object-XML-Mapper(JAXB實現)。

+0

它可以是我選擇的任何格式。我會看看 – bcoughlan

+1

我認爲,他的意思是XML指的是定義XML文件中的映射 – dunni

1

我不會爲你所描述的小型桌面解決方案使用RDBMS。有很多漂亮的工具可以保存數據:使用文本文件進行定製開發的訪問,序列化的java對象,帶protobuf的序列化便攜式數據。

如果你想仍使用SQL訪問一樣,你可以使用SQL精簡版或MySQL的嵌入式版本。

就我個人而言,我做了小額訂單管理應用程序,將磁盤上的數據集合存儲在文件中。根據你的django背景,你也可以考慮JSON格式,它必須是你最喜歡的。

4

所有這些框架的創建都是爲了消除鍋爐板並將其替換爲已經測試過的穩定代碼。無論您是在討論關於RDBMS的ORM還是針對XML的映射/綁定框架,他們「幾乎」都不會矯枉過正。它們有助於降低應用程序的風險狀況。關鍵首字母縮寫是DRY。

1

如果您正在使用ORM(比如JPA/Hibernate或其他),一些IDE(如Netbeans的)具有生成與數據庫進行通信的所有類的能力。所有你需要做的就是創建一個數據庫模式(用oracle的術語來說)。所以在那之後你只需要編寫一個業務邏輯。 如果你不想在你的項目中使用javaEE,你可以使用FireStormDAO這樣的工具。它可以從數據庫的DDL腳本生成DAO類。

相關問題