From [email protected]
開源框架:Hibernate Gossip
Hibernate 是「物件/關係對應」(Object/Relational Mapping)的解決方案,簡寫為ORM,簡單的說就是將 Java 中的物件與物件關係,映射至關聯式資料庫中的表格與表格之間的關係, Hibernate 提供了這個過程中自動對應轉換的方案。
2001年未 Hibernate 第一個版本發表,2003年6月8日 Hibernate 2 發表,並於年未獲得 Jolt 2004 大獎,後被 JBOSS 收納而成為其子項目之一,2005年3月 Hibernate 3 正式發表,當中有了一些重大的改變,這份文件將以之前 Hibernate 2 時撰寫的 文件 為基礎,針對 Hibernate 3作重新整理的動作,所使用的版本為Hibernate 3.0。
基礎入門 從一個最基本的物件關係映射自動化程式,瞭解 Hibernate 組成的基本元素,並進一步瞭解 Hibernate 的基礎語義、配置等概念。 第一個 Hibernate 程式很簡單,將一個物件映射至一個資料表。 -
- 配置 Hibernate
- 第一個 Hibernate
- 第二個 Hibernate
- 基本配置
瞭解一下配置文件、映射文件中各種元素的意義,在進入物件關係映射的學習之前,這是必備的基本功夫。 -
- 配置文件
- 資料庫連結
- 簡介快取(Session Level)
- 簡介事務管理(基於 JDBC )
- 映射文件
- 基本 API
瞭解一下 Hibernate 常使用的幾個類別之基本使用方式。 -
- Session
- Session 管理
- Criteria 基本查詢
- Criteria 進階查詢
- DetchedCriteria
- Query
- HQL(Hibernate Query Language)
這是 Hibernate 官方所推薦的查詢語言,接近 SQL 的語法,並提供更多的特性與封裝。 -
- 基本查詢
- where、 group by、order by 子句
- 更新、刪除
- SQL 支援
Hibernate 提供了對 SQL 的支援,並可以自行定義持久化方式。 -
- 建立 SQL 查詢
- 自定義 insert、update、delete
一邊是物件,一邊是資料表格,兩者在映射時有一些過渡的基礎議題必須瞭解。 -
- 實體物件生命週期
- 資料識別(Data Identity)
物件關聯映射(Object/Relational Mapping, ORM) 學習 Hibernate,大部份的時間都在瞭解如何實現映射,而從中您也可以瞭解到不少關聯式資料庫的表格設計方式。 來看看一些進階的實體映射議題。 -
- 複合主鍵(一)
- 複合主鍵(二)
- Blob、 Clob
- Blob、 Clob - Oracle 9i
- Component
- 動態模型(Dynamic Model)
- 繼承映射
在物件導向設計中,繼承關係是很常見的,但繼承與關聯式資料庫有著先天上的差異,繼承關係至表格的設計上有三種方式。 -
- 繼承 - Table per concrete class
- 繼承 - Table per class hierarchy
- 繼承 - Table per subclass
- 容器映射
容器常用來儲存物件,這邊來瞭解一下如何將容器的關係映射至表格。 -
- Set
- List
- Map
- Bag
- 內含 Component 的容器
- 容器的排序
- 容器的延遲初始(Lazy Initialization)
- 關係映射
來看看實體與實體之間的多對一、一對多、一對一、多對多如何與Java物件之間進行映射。 -
- 多對一
- cascade 的意義
- 一對多
- 雙向關聯(inverse 的意義)
- 一對一(唯一外鍵關聯)
- 一對一(主鍵關聯)
- 多對多
進階特性 有關於Hibernate的快取、事務等進階特性的探討。 二級快取可以跨越 Session 生命週期,Hibernate 透過第三方來實現二級快取,這邊也來看看 Query 的快取。 -
- 二級快取(Second- level)
- Query 快取
- Query.list ()、iterator()
- Locking
Hibernate 透過兩種 Locking 機制來保證資料在操作過程中不會被干擾。 -
- 悲觀鎖定(Pessimistic Locking)
- 樂觀鎖定(Optimistic Locking)
- Validatable、Lifecycle、Interceptor
分別透過這三個介面,來進行資料驗證、於 CRUD(Create Retrieve Update Delete)作對應動作、欄截動作。 -
- Lifecycle 介面、Validatable 介面
- Interceptor 介面
工具 透過一些工具來自動生成映射文件或資料庫表格。 附錄 - 從 Hibernate 2 到 Hibernate 3
- Hibernate 官方網站
- Java 視線論譠
|