資源描述:
《Hibernate原理與配置快速入門.pdf》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、Hibernate原理與配置快速入門Hibernate原理與配置快速入門作者:羅小虎來(lái)自:天極網(wǎng)Hibernate原理與配置快速入門在本文中,我向大家重點(diǎn)介紹Hibernate的核心API調(diào)用庫(kù),并講解一下它的基本配置。也許你聽說(shuō)過(guò)Hibernate的大名,但可能一直不了解它,也許你一直渴望使用它進(jìn)行開發(fā),那么本文正是你所需要的!在本文中,我向大家重點(diǎn)介紹Hibernate的核心API調(diào)用庫(kù),并講解一下它的基本配置??赐瓯疚暮?,我相信你對(duì)什么是ORM(對(duì)像/關(guān)系映射)以及它的優(yōu)點(diǎn)會(huì)有一個(gè)深刻的認(rèn)識(shí),我們先通過(guò)一個(gè)
2、簡(jiǎn)單的例子開始來(lái)展現(xiàn)它的威力。正如一些傳統(tǒng)的經(jīng)典計(jì)算機(jī)文章大都會(huì)通過(guò)一個(gè)“hello,world”的例子開始講解一樣,我們也不例外,我們也將從一個(gè)相對(duì)簡(jiǎn)單的例子來(lái)闡述Hibernate的開發(fā)方法,但如果要真正闡述Hibernate的一些重要思想,僅僅靠在屏幕上打印一些字符是遠(yuǎn)遠(yuǎn)不夠的,在我們的示例程序中,我們將創(chuàng)建一些對(duì)象,并將其保存在數(shù)據(jù)庫(kù)中,然后對(duì)它們進(jìn)行更新和查詢。閱讀導(dǎo)航“Helloworld”示例程序讓您對(duì)Hibernate有一個(gè)簡(jiǎn)單的認(rèn)“HelloWorld”識(shí)理解Hibernate的架構(gòu)介紹Hibe
3、rnate接口的主要功能。Hibernate有5個(gè)核心接口,通過(guò)這幾個(gè)接口開發(fā)人員可核心接口以存儲(chǔ)和獲得持久對(duì)象,并且能夠進(jìn)行事務(wù)控制Type是Hibernate發(fā)明者發(fā)明的一個(gè)術(shù)語(yǔ),它在整個(gè)構(gòu)架一個(gè)重要的術(shù)語(yǔ):Type中是一個(gè)非?;A(chǔ)、有著強(qiáng)大功能的元素,一個(gè)Type對(duì)象能將一個(gè)Java類型映射到數(shù)據(jù)庫(kù)中一個(gè)表的字段中去。Hibernate與某些其它開源軟件不同的還有一點(diǎn)――高度策略接口的可擴(kuò)展性,這通過(guò)它的內(nèi)置策略機(jī)制來(lái)實(shí)現(xiàn)。Hibernate可以配置成可在任何Java環(huán)境中運(yùn)行,一般說(shuō)基礎(chǔ)配置來(lái),它通常被用
4、在2-3層的C/S模式的項(xiàng)目中,并被部署在服務(wù)端。要?jiǎng)?chuàng)建一個(gè)SessionFactory對(duì)象,必須在Hibernate初始創(chuàng)建一個(gè)SessionFactory對(duì)化時(shí)創(chuàng)建一個(gè)Configuration類的實(shí)例,并將已寫好的映象射文件交由它處理。Hibernate原理與配置快速入門“HelloWorld”Hibernate應(yīng)用程序定義了一些持久類,并且定義了這些類與數(shù)據(jù)庫(kù)表格的映射關(guān)系。在我們這個(gè)“Helloworld”示例程序中包含了一個(gè)類和一個(gè)映射文件。讓我們看看這個(gè)簡(jiǎn)單的持久類包含有一些什么?映射文件是怎樣定義
5、的?另外,我們?cè)撛鯓佑肏ibernate來(lái)操作這個(gè)持久類。我們這個(gè)簡(jiǎn)單示例程序的目的是將一些持久類存儲(chǔ)在數(shù)據(jù)庫(kù)中,然后從數(shù)據(jù)庫(kù)取出來(lái),并將其信息正文顯示給用戶。其中Message正是一個(gè)簡(jiǎn)單的持久類:,它包含我們要顯示的信息,其源代碼如下:列表1Message.Java一個(gè)簡(jiǎn)單的持久類packagehello;publicclassMessage{privateLongid;privateStringtext;privateMessagenextMessage;privateMessage(){}publicMe
6、ssage(Stringtext){this.text=text;}publicLonggetId(){returnid;}privatevoidsetId(Longid){this.id=id;}publicStringgetText(){returntext;}publicvoidsetText(Stringtext){this.text=text;}publicMessagegetNextMessage(){returnnextMessage;}publicvoidsetNextMessage(Messag
7、enextMessage){this.nextMessage=nextMessage;}}Hibernate原理與配置快速入門Message類有三個(gè)屬性:Message的id、消息正文、以及一個(gè)指向下一條消息的指針。其中id屬性讓我們的應(yīng)用程序能夠唯一的識(shí)別這條消息,通常它等同于數(shù)據(jù)庫(kù)中的主鍵,如果多個(gè)Message類的實(shí)例對(duì)象擁有相同的id,那它們代表數(shù)據(jù)庫(kù)某個(gè)表的同一個(gè)記錄。在這里我們選擇了長(zhǎng)整型作為我們的id值,但這不是必需的。Hibernate允許我們使用任意的類型來(lái)作為對(duì)象的id值,在后面我們會(huì)對(duì)此作詳
8、細(xì)描述。你可能注意到Message類的代碼類似于JavaBean的代碼風(fēng)格,并且它有一個(gè)沒(méi)有參數(shù)的構(gòu)造函數(shù),在我們以后的代碼中我將繼續(xù)使用這種風(fēng)格來(lái)編寫持久類的代碼。Hibernate會(huì)自動(dòng)管理Message類的實(shí)例,并通過(guò)內(nèi)部機(jī)制使其持久化,但實(shí)際上Message對(duì)象并沒(méi)有實(shí)現(xiàn)任何關(guān)于Hibernate的類或接口,因此我們也可以將它作為一個(gè)普通的Java類來(lái)使用:Mes