Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架窟赏,它對(duì)JDBC進(jìn)行了非[輕量級(jí)的對(duì)象封裝岩灭,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來操縱數(shù)據(jù)庫拌倍。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶端程序使用噪径,也可以在Servlet/JSP的Web應(yīng)用中使用柱恤,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP找爱,完成數(shù)據(jù)持久化的重任梗顺。Hibernate的核心接口一共有6個(gè),分別為:Session车摄、SessionFactory寺谤、Transaction、Query吮播、Criteria和Configuration变屁。
核心接口
Hibernate的核心接口一共有6個(gè),分別為:Session意狠、SessionFactory粟关、Transaction、Query环戈、Criteria和Configuration闷板。這6個(gè)核心接口在任何開發(fā)中都會(huì)用到澎灸。通過這些接口,不僅可以對(duì)持久化對(duì)象進(jìn)行存取遮晚,還能夠進(jìn)行事務(wù)控制性昭。下面對(duì)這6個(gè)核心接口分別加以介紹。
Session接口
Session接口負(fù)責(zé)執(zhí)行被持久化對(duì)象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫的交流鹏漆,包含了很多常見的SQL語句巩梢。但需要注意的是Session對(duì)象是非線程安全的。同時(shí)艺玲,Hibernate的session不同于JSP應(yīng)用中的HttpSession括蝠。這里當(dāng)使用session這個(gè)術(shù)語時(shí),其實(shí)指的是Hibernate中的session饭聚,而以后會(huì)將HttpSession對(duì)象稱為用戶session忌警。
SessionFactory接口
SessionFactory接口負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理秒梳,并負(fù)責(zé)創(chuàng)建Session對(duì)象法绵。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級(jí)的酪碘,因?yàn)橐话闱闆r下朋譬,一個(gè)項(xiàng)目通常只需要一個(gè)SessionFactory就夠,當(dāng)需要操作多個(gè)數(shù)據(jù)庫時(shí)兴垦,可以為每個(gè)數(shù)據(jù)庫指定一個(gè)SessionFactory徙赢。
Configuration類
Configuration類負(fù)責(zé)配置并啟動(dòng)Hibernate,創(chuàng)建SessionFactory對(duì)象探越。在Hibernate的啟動(dòng)的過程中狡赐,Configuration類的實(shí)例首先定位映射文檔位置、讀取配置钦幔,然后創(chuàng)建SessionFactory對(duì)象枕屉。
Transaction類
Transaction接口負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的鲤氢,開發(fā)人員也可以設(shè)計(jì)編寫自己的底層事務(wù)處理代碼
Query和Criteria類
Query和Criteria接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫查詢搀擂。它可以使用HQL語句或SQL語句兩種表達(dá)方式。
版本介紹
- 1Hibernate版本更新速度很快卷玉,目前為止有兩個(gè)階段性的版本:Hibernate2哨颂,Hibernate3和Hibernate4,這一點(diǎn)程序員從其Jar文件名便可以看出來揍庄。目前最新發(fā)布的版本是hibernate-search-4.2.0.Final。
- 2Hibernate2系列的最高版本是Hibernate2.1.8东抹,Hibernate3系列的最高版本是hibernate-distribution-3.6.10.Final-dist版蚂子,但目前使用較多且較穩(wěn)定的版本是Hibernate 3.1.3或Hibernate 3.1.2沃测。