1、dao介面增、刪、改操作 針對每張表進行設計
2、檢索單條記錄詳情也可以針對每張表進行設計,然後在業務層使用其他dao介面進行組裝成需要的領域物件(這裡可以考慮快取,這樣就盡量避免多次訪問資料庫)。如果考慮到效率,也可以進行聯合查詢,特別是一對多和一對一的情況,對返回的記錄進行組裝得到需要的領域物件。
3、如果是針對單個資料庫的系統,分頁盡量在資料庫中進行,所以進行表關聯查詢,同時需要返回次表的資訊時,1)主表和次表是一對一或者多對一的關 系,那麼直接返回次表資訊;2)主表和次表是一對多的關係,則只返回主表的資訊,次表資訊,通過dao介面重新一次sql查詢 。
4、對資料庫進行更新的操作,一定需要將操作發生時的狀態(可能包括很關鍵字段)作為條件進行更新,防止併發更新的情況發生。
5、設計領域物件時理清領域物件之間的關係和他們的業務操作,不太複雜的業務邏輯判斷和操作盡量在領域物件中完成,如果業務比較複雜可以借助helper類來幫助完成業務運算,領域物件不完成持久化的工作,將持久化工作委託給外部業務類來進行。
6、所有常量,包括資料庫中的狀態、型別、標誌等字段,使用單獨的常量類或者列舉類來完成,任何地方都取其引用,不允許直接使用常量值進行邏輯判斷,最好使用乙個布林方法在領域物件中完成判斷。
7、狀態變換比較複雜的系統,考慮使用狀態模式來進行設計。
8、dao介面中不進行任何資料庫事務控制,事務**全部根據業務規則在業務層中進行,所以最好使用aop來完成事務(考慮spring),在業務層中對只是查詢的業務方法也開啟唯讀事務,防止多表查詢時其他操作可能改變資料庫造成查詢結果不一致。
9、設計乙個result類在業務層返回結果和出錯資訊,所以出錯資訊使用resourceboudle來讀取外部配置資訊。所有異常都在最後一級業務層中進行處理,例如daoexception.
10、。。。。。。等待繼續發現
從ET2開發中領悟到的
1 dao介面增 刪 改操作針對每張表進行設計 2 檢索單條記錄詳情也可以針對每張表進行設計,然後在業務層使用其他dao介面進行組裝成需要的領域物件 這裡可以考慮快取,這樣就盡量避免多次訪問資料庫 如果考慮到效率,也可以進行聯合查詢,特別是一對多和一對一的情況,對返回的記錄進行組裝得到需要的領域物件...
笑話中領悟到的哲理 一
1 建築師 一位夫人打 給建築師,說每當火車經過時,她的睡床就會搖動。這簡直是無稽之談!建築師回答說,我來看看。建築師到達後,夫人建議他躺在床上,體會一下火車經過時的感覺。建築師剛 躺下,夫人的丈夫就回來了。他見此情形,便厲聲喝問 你躺在我妻子的床上幹什麼?建築師戰戰兢兢地回答 我說是在等火車,你會...
從考駕照過程中領悟到的幾點建站心得
這兩年發現自己有點著魔了,與朋友喝酒聊天會不自覺地扯到 推廣上,出去旅遊見識了旅行社宰客就聯想到 使用者體驗問題,最近在考駕照,坐在車上居然還想著我的 真不知道是我的生活成就了 還是 改變了我的生活。這裡,不妨再寫上幾句,平抑下我瘋狂的心靈。走對路線。做任何事情,方向最重要。方向對路,可能事半功倍。...