許多人說「Hibernate 不難,只是對 JDBC 封裝」。但若停留在會用層面,永遠無法掌握核心。本文從整體架構切入,帶你理解 Hibernate 到底是什麼、如何運作、優缺點為何。
持久化:將記憶體中物件儲存到永久儲存裝置(關聯式資料庫、檔案、XML 等)。JDBC、檔案 IO 皆為持久化機制。
| 介面 | 職責 |
|---|---|
Configuration | 載入配置、啟動 Hibernate,建立 SessionFactory 後即被丟棄(啟動期物件) |
SessionFactory | 執行緒安全、重量級、單例模式,快取映射元資料,產生 Session |
Session | 非執行緒安全、輕量級,核心介面,負責 CRUD、事務邊界、一級快取 |
Transaction | 事務管理,統一 JDBC/JTA 事務 API |
Query / Criteria | 執行各類資料庫查詢(HQL、SQL、QBC) |
hibernate.cfg.xml:資料庫連線、方言、映射檔引用、快取策略等全域設定*.hbm.xml:實體類與資料表映射關係(或使用註解 @Entity、@Table 等)本文為系列第一篇,著重整體認識。後續將深入 Session 生命週期、快取機制、HQL/Criteria、鎖機制等主題。