畢業設計做到現在,中間改動特別大;起初探索著邊學邊用Hibernate,把數據庫表全部映射好了開始寫DAO時發現Hibernate并沒有想象中的那么吸引人。首先是效率上,Hibernate3似乎沒有deleteById類似的方法,導致刪除一個持久化對象要執行兩次SQL語句:檢索對象,再刪除對象(當然前提是從WEB層得到對象的主鍵);其實就是,對于這類功能強大的OR框架,以我和溫さん的目前的能力,是不可能駕馭的,而何況這個畢業設計也估且算個正式項目,時間又很緊。最終決定換用iBatis。這玩意確實容易上手,直接寫SQL,但缺點也顯而易見:沒有級聯,沒有持久層對象(即PO)的概念,有N+1查詢的效率問題,比如客戶表有訂單外鍵,表現到PO就是客戶對象里有訂單對象的屬性,做這種情況下的查詢時iBatis就沒Hibernate方便。目前我也只有這些很膚淺的看法,但似乎Hibernate在大的系統面前確有更好的性能表現,有空了再來好好學一下,畢竟它是OR框架的典范。