2010-04-05 63 views
2

我已經接管了一些使用CodeFutures的Firestorm DAO代碼生成器的代碼。我相信這個許可證很快就會出現,並且想知道是否有人可以推薦任何替代品,不管是否開源,這樣我就可以瞭解到底有什麼可以做出更好的決定。Firestorm dao更換的建議

回答

0

一種選擇是完全改變方向並使用像JPA這樣的持久框架。您可以創建Java對象模型,添加適當的註釋,並且JPA可以爲您處理其他任何事情,而不會產生任何雜亂的生成代碼。

授予,根據您的架構和業務情況的具體情況,這種改變可能不適合您。但是,如果您可以管理它,JPA似乎更符合當前Java持久性最佳實踐。

我用OpenJPA的生產環境:http://openjpa.apache.org/

我們考慮的TopLink(Oracle的實現),但遇到了,我不記得的幾個問題。 http://www.oracle.com/technology/products/ias/toplink/index.html

+0

基本上我們決定隔離現在我們現在的dao代碼,因爲它已經存在並且功能很強大,用hibernate開發。 – Casey 2010-04-29 15:48:59

+0

重寫整個事物的明智選擇。祝你好運! – JavadocMD 2010-05-03 22:44:33

1

我強烈建議不是關閉風暴。大約90%的使用案例使Firestorm使DAO成爲過去。對於所有其他情況,只需使用繼承的輔助方法子類化firestorm創建的dao,並添加所需的功能即可。你不需要許可證,你可以使用免費許可證。 不,我不是來自Firestorm,但Firestorm幫助我將項目從地面上節省了大約40%的時間。一旦我進入更復雜的查詢,它將開始爲我節省大約20%的開發時間,但是,嘿,與其他解決方案相比,它仍然節省20%。此外,它轉換成原始JDBC。當出現問題時,如果熟悉ODBC/JDBC,調試將變得更加容易。

1

這對於您在4月份的具體決定可能有點晚,但如果您習慣於Firestorm DAO,對每個數據庫實體使用生成的代碼,則可能會發現切換到jOOQ很容易。 jOOQ完全省略了「DAO層」,生成直接代表關係模型的類。這通常被稱爲Active Record pattern。而不是寫的DAO,你可以使用jOOQ's built-in DSL,類似的直接查詢從Java數據庫微軟的Linq

我同意JavadocMD,即JPA(或休眠)是目前被認爲「最佳實踐」。但也許你不想添加對象關係映射到你的應用程序well-known reasons ...