更新時(shí)間:2020-02-28 10:55:38 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2072次
Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來操縱數(shù)據(jù)庫。Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在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。這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。
Transaction
Transaction接口是一個(gè)可選的API,可以選擇不使用這個(gè)接口,取而代之的是Hibernate的設(shè)計(jì)者自己寫的底層事務(wù)處理代碼。Transaction接口是對(duì)實(shí)際事務(wù)實(shí)現(xiàn)的一個(gè)抽象,這些實(shí)現(xiàn)包括JDBC的事務(wù)、JTA中的UserTransaction、甚至可以是CORBA事務(wù)。之所以這樣設(shè)計(jì)是能讓開發(fā)者能夠使用一個(gè)統(tǒng)一事務(wù)的操作界面,使得自己的項(xiàng)目可以在不同的環(huán)境和容器之間方便地移植。
Query
Query接口讓你方便地對(duì)數(shù)據(jù)庫及持久對(duì)象進(jìn)行查詢,它可以有兩種表達(dá)方式:HQL語言或本地?cái)?shù)據(jù)庫的SQL語句。Query經(jīng)常被用來綁定查詢參數(shù)、限制查詢記錄數(shù)量,并最終執(zhí)行查詢操作。
Criteria
Criteria接口與Query接口非常類似,允許創(chuàng)建并執(zhí)行面向?qū)ο蟮臉?biāo)準(zhǔn)化查詢。值得注意的是Criteria接口也是輕量級(jí)的,它不能在Session之外使用。
Configuration
Configuration接口的作用是對(duì)Hibernate進(jìn)行配置,以及對(duì)它進(jìn)行啟動(dòng)。在Hibernate的啟動(dòng)過程中,Configuration類的實(shí)例首先定位映射文檔的位置,讀取這些配置,然后創(chuàng)建一個(gè)SessionFactory對(duì)象。雖然Configuration接口在整個(gè)Hibernate項(xiàng)目中只扮演著一個(gè)很小的角色,但它是啟動(dòng)hibernate時(shí)所遇到的每一個(gè)對(duì)象。
hibernate的優(yōu)點(diǎn)
Hibernate會(huì)處理映射的Java類來使用XML文件,數(shù)據(jù)庫表和無需編寫任何一行代碼。
提供了簡單的API,用于直接從數(shù)據(jù)庫中存儲(chǔ)和檢索Java對(duì)象。
如果有變化,數(shù)據(jù)庫或任何表中的那么只需要修改XML文件的屬性。
抽象掉不熟悉的SQL類型,并提供我們解決熟悉的Java對(duì)象。
Hibernate不要求應(yīng)用服務(wù)器進(jìn)行操作。
操縱數(shù)據(jù)庫對(duì)象的復(fù)雜關(guān)聯(lián)。
盡量減少與智能讀取策略數(shù)據(jù)庫的訪問。
提供數(shù)據(jù)的簡單查詢。
hibernate配置
先下載hibernate所需包,我下載的是hibernate-distribution-3.6.4.Final,解壓縮下載的文件,目錄結(jié)構(gòu)如下所示。
然后將lib中的包拷貝到項(xiàng)目中即可。
同時(shí)也可以使用myeclipse直接加載hibernate框架。
配置文件hibernate.cfg.xml
以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java框架入門視頻教程:hibernate入門”的內(nèi)容,希望對(duì)大家有幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743