Hibernate3一个不错的入门介绍
是javaworld台湾的一个网站
原文地址:http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=3077
原文地址:http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=3077
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 的基礎語義、配置等概念。
- O/R 映射入門
第一個 Hibernate 程式很簡單,將一個物件映射至一個資料表。
- 基本配置
瞭解一下配置文件、映射文件中各種元素的意義,在進入物件關係映射的學習之前,這是必備的基本功夫。
- 基本 API
瞭解一下 Hibernate 常使用的幾個類別之基本使用方式。
- HQL(Hibernate Query Language)
這是 Hibernate 官方所推薦的查詢語言,接近 SQL 的語法,並提供更多的特性與封裝。
- SQL 支援
Hibernate 提供了對 SQL 的支援,並可以自行定義持久化方式。
- 映射基礎議題
一邊是物件,一邊是資料表格,兩者在映射時有一些過渡的基礎議題必須瞭解。
物件關聯映射(Object/Relational Mapping, ORM)
學習 Hibernate,大部份的時間都在瞭解如何實現映射,而從中您也可以瞭解到不少關聯式資料庫的表格設計方式。
- 實體映射
來看看一些進階的實體映射議題。
- 繼承映射
在物件導向設計中,繼承關係是很常見的,但繼承與關聯式資料庫有著先天上的差異,繼承關係至表格的設計上有三種方式。
- 容器映射
容器常用來儲存物件,這邊來瞭解一下如何將容器的關係映射至表格。
- 關係映射
來看看實體與實體之間的多對一、一對多、一對一、多對多如何與Java物件之間進行映射。
進階特性
有關於Hibernate的快取、事務等進階特性的探討。
- 快取
二級快取可以跨越 Session 生命週期,Hibernate 透過第三方來實現二級快取,這邊也來看看 Query 的快取。
- Locking
Hibernate 透過兩種 Locking 機制來保證資料在操作過程中不會被干擾。
- Validatable、Lifecycle、Interceptor
分別透過這三個介面,來進行資料驗證、於 CRUD(Create Retrieve Update Delete)作對應動作、欄截動作。
工具
透過一些工具來自動生成映射文件或資料庫表格。
其它
- [從 Hibernate 2 到 Hibernate 3]
Bag (OpenSource Project)
Blob、Clob (OpenSource Project)
cascade 的意義 (OpenSource Project)
Component (OpenSource Project)
Criteria 基本查詢 (OpenSource Project)
Criteria 進階查詢 (OpenSource Project)
DetchedCriteria (OpenSource Project)
Interceptor 介面 (OpenSource Project)
Lifecycle 介面、Validatable 介面 (OpenSource Project)
List (OpenSource Project)
Query (OpenSource Project)
Query 快取 (OpenSource Project)
Query.list、iterator (OpenSource Project)
Session (OpenSource Project)
Session 管理 (OpenSource Project)
Set (OpenSource Project)
where、group by、order by 子句 (OpenSource Project)
一對一(主鍵關聯) (OpenSource Project)
一對一(唯一外鍵關聯) (OpenSource Project)
一對多 (OpenSource Project)
二級快取(Second-level) (OpenSource Project)
內含 Component 的容器 (OpenSource Project)
動態模型(Dynamic Model) (OpenSource Project)
基本查詢 (OpenSource Project)
多對一 (OpenSource Project)
多對多 (OpenSource Project)
容器的延遲初始(Lazy Initialization) (OpenSource Project)
容器的排序 (OpenSource Project)
實體物件生命週期 (OpenSource Project)
建立 SQL 查詢 (OpenSource Project)
從映射文件生成資料表 (OpenSource Project)
從資料表生成映射文件 (OpenSource Project)
悲觀鎖定(Pessimistic Locking) (OpenSource Project)
映射文件 (OpenSource Project)
更新、刪除 (OpenSource Project)
樂觀鎖定(Optimistic Locking) (OpenSource Project)
第一個 Hibernate (OpenSource Project)
第二個 Hibernate (OpenSource Project)
簡介事務管理(基於 JDBC ) (OpenSource Project)
簡介快取(Session Level) (OpenSource Project)
繼承 - Table per subclass (OpenSource Project)
繼承 - Table per class hierarchy (OpenSource Project)
繼承 - Table per concrete class (OpenSource Project)
自定義 insert、update、delete (OpenSource Project)
複合主鍵(一) (OpenSource Project)
複合主鍵(二) (OpenSource Project)
資料庫連結 (OpenSource Project)
資料識別(Data Identity) (OpenSource Project)
配置 Hibernate (OpenSource Project)
配置文件 (OpenSource Project)
雙向關聯(inverse 的意義) (OpenSource Project)
Blob、Clob (OpenSource Project)
cascade 的意義 (OpenSource Project)
Component (OpenSource Project)
Criteria 基本查詢 (OpenSource Project)
Criteria 進階查詢 (OpenSource Project)
DetchedCriteria (OpenSource Project)
Interceptor 介面 (OpenSource Project)
Lifecycle 介面、Validatable 介面 (OpenSource Project)
List (OpenSource Project)
Query (OpenSource Project)
Query 快取 (OpenSource Project)
Query.list、iterator (OpenSource Project)
Session (OpenSource Project)
Session 管理 (OpenSource Project)
Set (OpenSource Project)
where、group by、order by 子句 (OpenSource Project)
一對一(主鍵關聯) (OpenSource Project)
一對一(唯一外鍵關聯) (OpenSource Project)
一對多 (OpenSource Project)
二級快取(Second-level) (OpenSource Project)
內含 Component 的容器 (OpenSource Project)
動態模型(Dynamic Model) (OpenSource Project)
基本查詢 (OpenSource Project)
多對一 (OpenSource Project)
多對多 (OpenSource Project)
容器的延遲初始(Lazy Initialization) (OpenSource Project)
容器的排序 (OpenSource Project)
實體物件生命週期 (OpenSource Project)
建立 SQL 查詢 (OpenSource Project)
從映射文件生成資料表 (OpenSource Project)
從資料表生成映射文件 (OpenSource Project)
悲觀鎖定(Pessimistic Locking) (OpenSource Project)
映射文件 (OpenSource Project)
更新、刪除 (OpenSource Project)
樂觀鎖定(Optimistic Locking) (OpenSource Project)
第一個 Hibernate (OpenSource Project)
第二個 Hibernate (OpenSource Project)
簡介事務管理(基於 JDBC ) (OpenSource Project)
簡介快取(Session Level) (OpenSource Project)
繼承 - Table per subclass (OpenSource Project)
繼承 - Table per class hierarchy (OpenSource Project)
繼承 - Table per concrete class (OpenSource Project)
自定義 insert、update、delete (OpenSource Project)
複合主鍵(一) (OpenSource Project)
複合主鍵(二) (OpenSource Project)
資料庫連結 (OpenSource Project)
資料識別(Data Identity) (OpenSource Project)
配置 Hibernate (OpenSource Project)
配置文件 (OpenSource Project)
雙向關聯(inverse 的意義) (OpenSource Project)
现在使用的是3.2版本