從ET2開發中領悟到的

來源:互聯網
上載者:User

1、DAO介面增、刪、改操作 針對每張表進行設計

2、檢索單條記錄詳情也可以針對每張表進行設計,然後在業務層使用其他DAO介面進行組裝成需要的領域對象(這裡可以考慮緩衝,這樣就盡量避免多次訪問資料庫)。如果考慮到效率,也可以進行聯集查詢,特別是一對多和一對一的情況,對返回的記錄進行組裝得到需要的領域對象。

3、如果是針對單個資料庫的系統,分頁盡量在資料庫中進行,所以進行表關聯查詢,同時需要返回次表的資訊時,1)主表和次表是一對一或者多對一的關係,那麼直接返回次表資訊;2)主表和次表是一對多的關係,則只返回主表的資訊,次表資訊,通過DAO介面重新一次SQL查詢 。

4、對資料庫進行更新的操作,一定需要將操作發生時的狀態(可能包括很關鍵字段)作為條件進行更新,防止並發更新的情況發生。

5、設計領域對象時理清領域對象之間的關係和他們的業務操作,不太複雜的商務邏輯判斷和操作盡量在領域對象中完成,如果業務比較複雜可以藉助helper類來協助完成業務運算,領域對象不完成持久化的工作,將持久化工作委託給外部業務類來進行。

6、所有常量,包括資料庫中的狀態、類型、標誌等欄位,使用單獨的常量類或者枚舉類來完成,任何地方都取其引用,不允許直接使用常量值進行邏輯判斷,最好使用一個布爾方法在領域對象中完成判斷。

7、狀態變換比較複雜的系統,考慮使用狀態模式來進行設計。

8、DAO介面中不進行任何資料庫事務控制,事務代碼全部根據商務規則在業務層中進行,所以最好使用AOP來完成事務(考慮Spring),在業務層中對只是查詢的業務方法也開啟唯讀事務,防止多表查詢時其他動作可能改變資料庫造成查詢結果不一致。

9、設計一個Result類在業務層返回結果和出錯資訊,所以出錯資訊使用ResourceBoudle來讀取外部配置資訊。所有異常都在最後一級業務層中進行處理,例如daoException.

10、。。。。。。等待繼續發現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.