1. 程式人生 > >迷茫於Hibernate/JPA的人提一些建議。

迷茫於Hibernate/JPA的人提一些建議。

優化技巧 jdbc 性能優化 異常錯誤 dong 級聯 管理機 schema body

想對那些“迷惑”於Java ORM框架的J2EE開發人員提一些建議,希望能夠對他們
更深入的理解和運用J2EE ORM框架來提速工作有所幫助,這些建議可能顯得有些”陳舊“和”膚淺“,
因為最近半年我沒有再過多的關註Java ORM,並且也沒有繼續關註J2EE領域新進展。

在合理的使用Java ORM框架之前,必須要對他們有基本的了解,以下幾點是最基本的也應該需要
深刻掌握的基礎:

* 關鍵API接口的深刻理解,並且大致清楚其內部邏輯機制。


* 深刻理解經典對象關系與數據庫表schema之間的映射關系,特別是外鍵的關系。理解為何需要如此建立外鍵。


* Session對象狀態管理機制的深刻理解,受管對象的狀態遷移如何進行? 受管對象的狀態如何發生變化? 這些狀態對應於
底層數據庫何種操作(update,insert,delete)?

* 級聯操作的深刻理解


* Session 和 Transaction的關系,Session和Transaction的生命周期。

* 一級緩存和二級緩存的深刻理解

* 常見的ORM異常錯誤產生的原因和解決方式:
>> a different object with the same identifier value was already associated with the session
>> session already closed Exception

* Lazy load對於性能優化的作用與機制。 dashuju178.com dongfan178.com


* 在二級緩存中存在臟數據的操作陷阱。

* 性能調優的基本技巧: 觀察生成的SQL,優化HQL/EQL查詢。幾個基本建議: SQL查詢優化技巧完全
可以應用於HQL/EQL的查詢,比如:合理索引的建立,註意復合索引的處理技巧,
避免過長的join,註意Join的順序,註意where條件的順序。

* 二級緩存的合理優化,如果二級緩存對於內存有限制,請合理設計二級緩存的使用。

* 清楚ORM和傳統JDBC操作的優缺點,在Ibatis、Spring JDBC Template、ORM等框架間作合理的選擇。

* 使用Spring框架的時候,深刻理解Spring的事務管理機制。如果是初學,請仔細閱讀文檔,並反復實踐。

迷茫於Hibernate/JPA的人提一些建議。