ORM中間件Hibernate的靜態結構與調用步驟
Session接口向業務邏輯層提供讀、寫和刪除域對象的方法, 它不公開任何數據訪問細節, SessionImpl實現了Session接口,? 它通過JDBC API實現了數據的持久化。SessionFactory類負責創建Session實例。Hibernate在初始化階段把對象-關系映射文件中的映射元數據讀入到SessionFactory的緩存中。
執行步驟舉例:
如果業務邏輯層的類的某個方法希望從數據庫中刪除一個對象, 只需要調用Session的delete(aObject)方法(aObject為某一需要刪除的對象);具體步驟為:
1)運用Java反射機制, 獲得aObject對象的的類型為AObject.class;
2)參考對象-關系映射元數據, 了解到與AObject類對應的相關的表;
3)根據以上映射信息生成SQL語句;
4)調用JDBC API, 執行以上SQL語句。
確切地說, Hibernate在初始化階段就會根據映射信息預定義一些SQL語句(Insert、Delete、Update), 這些語句存放在SessionFactory的緩存中, 當執行例如delete()方法時, 只要調用相關的SQL語句就可以了。